/* eslint-disable */
! function(e, t) {
	"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.mobiscroll = t()
}(this, function() {
	"use strict";

	function e(e) {
		return "function" == typeof e
	}

	function t(e) {
		return "object" === (void 0 === e ? "undefined" : fe(e))
	}

	function a(e) {
		return "number" == typeof e.length
	}

	function n(e) {
		return e.replace(/-+(.)?/g, function(e, t) {
			return t ? t.toUpperCase() : ""
		})
	}

	function s(e, t, a) {
		for (var n in t) a && (Se.isPlainObject(t[n]) || Se.isArray(t[n])) ? ((Se.isPlainObject(t[n]) && !Se.isPlainObject(e[n]) || Se.isArray(t[n]) && !Se.isArray(e[n])) && (e[n] = {}), s(e[n], t[n], a)) : void 0 !== t[n] && (e[n] = t[n])
	}

	function r(e) {
		return e.replace(/::/g, "/")
			.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
			.replace(/([a-z\d])([A-Z])/g, "$1_$2")
			.replace(/_/g, "-")
			.toLowerCase()
	}

	function i(e, t) {
		return "number" != typeof t || Te[r(e)] ? t : t + "px"
	}

	function o() {}

	function l(e) {
		var t, a = [];
		for (t in e) a.push(e[t]);
		return a
	}

	function c(e) {
		var t, a = {};
		if (e) for (t = 0; t < e.length; t++) a[e[t]] = e[t];
		return a
	}

	function d(e) {
		return e - parseFloat(e) >= 0
	}

	function u(e) {
		return "string" == typeof e
	}

	function m(e, t, a) {
		return Math.max(t, Math.min(e, a))
	}

	function h(e, t) {
		var a, n;
		return t = t || 100,
		function() {
			var s = this,
				r = +new Date,
				i = arguments;
			a && r < a + t ? (clearTimeout(n), n = setTimeout(function() {
				a = r, e.apply(s, i)
			}, t)) : (a = r, e.apply(s, i))
		}
	}

	function f(e) {
		"vibrate" in navigator && navigator.vibrate(e || 50)
	}

	function p() {
		Pe++, setTimeout(function() {
			Pe--
		}, 500)
	}

	function b(e, t) {
		var a = (e.originalEvent || e)
			.changedTouches[0],
			n = document.createEvent("MouseEvents");
		n.initMouseEvent("click", !0, !0, window, 1, a.screenX, a.screenY, a.clientX, a.clientY, !1, !1, !1, !1, 0, null), n.tap = !0, t.mbscChange = !0, t.dispatchEvent(n), p()
	}

	function v(e, t, a) {
		var n = e.originalEvent || e,
			s = (a ? "page" : "client") + t;
		return n.targetTouches && n.targetTouches[0] ? n.targetTouches[0][s] : n.changedTouches && n.changedTouches[0] ? n.changedTouches[0][s] : e[s]
	}

	function g(e, t, a, n, s, r) {
		function i(e) {
			m || (n && e.preventDefault(), m = this, d = v(e, "X"), u = v(e, "Y"), h = !1, f = new Date)
		}

		function o(e) {
			m && !h && (Math.abs(v(e, "X") - d) > s || Math.abs(v(e, "Y") - u) > s) && (h = !0)
		}

		function l(t) {
			m && ((r && new Date - f < 100 || !h) && (t.preventDefault(), a.call(m, t, e)), m = !1, p())
		}

		function c() {
			m = !1
		}
		var d, u, m, h, f, b = he.$,
			g = b(t);
		s = s || 9, e.settings.tap && g.on("touchstart.mbsc", i)
			.on("touchcancel.mbsc", c)
			.on("touchmove.mbsc", o)
			.on("touchend.mbsc", l), g.on("click.mbsc", function(t) {
			n && t.preventDefault(), a.call(this, t, e)
		})
	}

	function x(e) {
		if (Pe && !e.tap && ("TEXTAREA" != e.target.nodeName || "mousedown" != e.type)) return e.stopPropagation(), e.preventDefault(), !1
	}

	

	function _(e, t, a, n, s, r, i) {
		var o = new Date(e, t, a, n || 0, s || 0, r || 0, i || 0);
		return 23 == o.getHours() && 0 === (n || 0) && o.setHours(o.getHours() + 2), o
	}

	function w(e, t, a) {
		if (!t) return null;
		var n, s, r = ze({}, $e, a),
			i = function(t) {
				for (var a = 0; n + 1 < e.length && e.charAt(n + 1) == t;) a++, n++;
				return a
			}, o = function(e, t, a) {
				var n = "" + t;
				if (i(e)) for (; n.length < a;) n = "0" + n;
				return n
			}, l = function(e, t, a, n) {
				return i(e) ? n[t] : a[t]
			}, c = "",
			d = !1;
		for (n = 0; n < e.length; n++)
		if (d) "'" != e.charAt(n) || i("'") ? c += e.charAt(n) : d = !1;
		else switch (e.charAt(n)) {
			case "d":
				c += o("d", r.getDay(t), 2);
				break;
			case "D":
				c += l("D", t.getDay(), r.dayNamesShort, r.dayNames);
				break;
			case "o":
				c += o("o", (t.getTime() - new Date(t.getFullYear(), 0, 0)
					.getTime()) / 864e5, 3);
				break;
			case "m":
				c += o("m", r.getMonth(t) + 1, 2);
				break;
			case "M":
				c += l("M", r.getMonth(t), r.monthNamesShort, r.monthNames);
				break;
			case "y":
				s = r.getYear(t), c += i("y") ? s:
					(s % 100 < 10 ? "0" : "") + s % 100;
					break;
				case "h":
					var u = t.getHours();
					c += o("h", u > 12 ? u - 12 : 0 === u ? 12 : u, 2);
					break;
				case "H":
					c += o("H", t.getHours(), 2);
					break;
				case "i":
					c += o("i", t.getMinutes(), 2);
					break;
				case "s":
					c += o("s", t.getSeconds(), 2);
					break;
				case "a":
					c += t.getHours() > 11 ? r.pmText:
						r.amText;
						break;
					case "A":
						c += t.getHours() > 11 ? r.pmText.toUpperCase():
							r.amText.toUpperCase();
							break;
						case "'":
							i("'") ? c += "'":
								d = !0;
								break;
							default:
								c += e.charAt(n)
		}
		return c
	}

	function M(e, t, a) {
		var n = ze({}, $e, a),
			s = n.defaultValue && n.defaultValue.getTime ? n.defaultValue : new Date;
		if (!e || !t) return s;
		if (t.getTime) return t;
		t = "object" == (void 0 === t ? "undefined" : fe(t)) ? t.toString() : t + "";
		var r, i = n.shortYearCutoff,
			o = n.getYear(s),
			l = n.getMonth(s) + 1,
			c = n.getDay(s),
			d = -1,
			u = s.getHours(),
			m = s.getMinutes(),
			h = 0,
			f = -1,
			p = !1,
			b = function(t) {
				var a = r + 1 < e.length && e.charAt(r + 1) == t;
				return a && r++, a
			}, v = function(e) {
				b(e);
				var a = "@" == e ? 14 : "!" == e ? 20 : "y" == e ? 4 : "o" == e ? 3 : 2,
					n = new RegExp("^\\d{1," + a + "}"),
					s = t.substr(T)
						.match(n);
				return s ? (T += s[0].length, parseInt(s[0], 10)) : 0
			}, g = function(e, a, n) {
				var s, r = b(e) ? n : a;
				for (s = 0; s < r.length; s++)
				if (t.substr(T, r[s].length)
					.toLowerCase() == r[s].toLowerCase()) return T += r[s].length, s + 1;
				return 0
			}, x = function() {
				T++
			}, T = 0;
		for (r = 0; r < e.length; r++)
		if (p) "'" != e.charAt(r) || b("'") ? x() : p = !1;
		else switch (e.charAt(r)) {
			case "d":
				c = v("d");
				break;
			case "D":
				g("D", n.dayNamesShort, n.dayNames);
				break;
			case "o":
				d = v("o");
				break;
			case "m":
				l = v("m");
				break;
			case "M":
				l = g("M", n.monthNamesShort, n.monthNames);
				break;
			case "y":
				o = v("y");
				break;
			case "H":
				u = v("H");
				break;
			case "h":
				u = v("h");
				break;
			case "i":
				m = v("i");
				break;
			case "s":
				h = v("s");
				break;
			case "a":
				f = g("a", [n.amText, n.pmText], [n.amText, n.pmText]) - 1;
				break;
			case "A":
				f = g("A", [n.amText, n.pmText], [n.amText, n.pmText]) - 1;
				break;
			case "'":
				b("'") ? x():
					p = !0;
					break;
				default:
					x()
		}
		if (o < 100 && (o += (new Date)
			.getFullYear() - (new Date)
			.getFullYear() % 100 + (o <= ("string" != typeof i ? i : (new Date)
			.getFullYear() % 100 + parseInt(i, 10)) ? 0 : -100)), d > -1) for (l = 1, c = d;;) {
			var y = 32 - new Date(o, l - 1, 32, 12)
				.getDate();
			if (c <= y) break;
			l++, c -= y
		}
		u = -1 == f ? u : f && u < 12 ? u + 12 : f || 12 != u ? u : 0;
		var _ = n.getDate(o, l - 1, c, u, m, h);
		return n.getYear(_) != o || n.getMonth(_) + 1 != l || n.getDay(_) != c ? s : _
	}

	function S(e) {
		var t;
		for (t in e)
		if (void 0 !== Je[e[t]]) return !0;
		return !1
	}

	function C(e, t) {
		if ("touchstart" == e.type) Ee(t)
			.attr("data-touch", "1");
		else if (Ee(t)
			.attr("data-touch")) return Ee(t)
			.removeAttr("data-touch"), !1;
		return !0
	}

	function k(e, t) {
		var a, n = getComputedStyle(e[0]);
		return Ee.each(["t", "webkitT", "MozT", "OT", "msT"], function(e, t) {
			if (void 0 !== n[t + "ransform"]) return a = n[t + "ransform"], !1
		}), a = a.split(")")[0].split(", "), t ? a[13] || a[5] : a[12] || a[4]
	}

	function D(e) {
		if (e) {
			if (qe[e]) return qe[e];
			var t = Ee('<div style="background-color:' + e + ';"></div>')
				.appendTo("body"),
				a = getComputedStyle(t[0]),
				n = a.backgroundColor.replace(/rgb|rgba|\(|\)|\s/g, "")
					.split(","),
				s = .299 * n[0] + .587 * n[1] + .114 * n[2],
				r = s < 130 ? "#fff" : "#000";
			return t.remove(), qe[e] = r, r
		}
	}

	function N(e, t) {
		function a(e) {
			var t;
			o = Ee(this), m = +o.attr("data-step"), l = !1, "mousedown" == e.type && e.preventDefault(), "keydown" != e.type ? (d = v(e, "X"), u = v(e, "Y"), t = C(e, this)) : t = 32 === e.keyCode, c || !t || o.hasClass("mbsc-fr-btn-d") || (c = !0, setTimeout(i, 100), "mousedown" == e.type && Ee(document)
				.on("mousemove", n)
				.on("mouseup", s))
		}

		function n(e) {
			(Math.abs(d - v(e, "X")) > 7 || Math.abs(u - v(e, "Y")) > 7) && r()
		}

		function s(e) {
			"touchend" == e.type && e.preventDefault(), l || i(), r(), "mouseup" == e.type && Ee(document)
				.off("mousemove", n)
				.off("mouseup", s)
		}

		function r() {
			c = !1, o && o.removeClass("mbsc-fr-btn-a")
		}

		function i() {
			c && !o.hasClass("mbsc-fr-btn-d") && (l = !0, t(m, i))
		}
		var o, l, c, d, u, m;
		e.on("touchstart mousedown keydown", a)
			.on("touchmove", n)
			.on("touchend touchcancel keyup", s)
	}

	function V(e) {
		return e[0].innerWidth || e.innerWidth()
	}

	function A(e) {
		var t = e[0],
			a = e.attr("data-role"),
			n = e.attr("type") || t.nodeName.toLowerCase();
		return /(switch|range|segmented|stepper)/.test(a) && (n = a), n
	}

	function I(e) {
		var t = he.themes.form[e];
		return t && t.addRipple ? t : null
	}

	function F() {
		clearTimeout(Dt), Dt = setTimeout(function() {
			Ee("textarea.mbsc-control")
				.each(function() {
				H(this)
			})
		}, 100)
	}

	function H(e) {
		var t = void 0,
			a = void 0,
			n = void 0,
			s = Ee(e)
				.attr("rows") || 6;
		e.offsetHeight && (e.style.height = "", n = e.scrollHeight - e.offsetHeight, t = e.offsetHeight + (n > 0 ? n : 0), a = Math.round(t / 24), a > s ? (e.scrollTop = t, t = 24 * s + (t - 24 * a), Ee(e)
			.addClass("mbsc-textarea-scroll")) : Ee(e)
			.removeClass("mbsc-textarea-scroll"), t && (e.style.height = t + "px"))
	}

	function O(e) {
		if (!Ee(e)
			.hasClass("mbsc-textarea-scroll")) {
			var t = e.scrollHeight - e.offsetHeight,
				a = e.offsetHeight + t;
			e.scrollTop = 0, e.style.height = a + "px"
		}
	}

	function P(e, t) {
		var a = {}, n = e.parent(),
			s = n.find(".mbsc-err-msg"),
			r = e.attr("data-icon-align") || "left",
			i = e.attr("data-icon");
		n.hasClass(Ot) ? n = n.parent() : Ee('<span class="' + Ot + '"></span>')
			.insertAfter(e)
			.append(e), s && n.find("." + Ot)
			.append(s), i && (-1 !== i.indexOf("{") ? a = JSON.parse(i) : a[r] = i), (i || t) && (ze(a, t), n.addClass((a.right ? "mbsc-ic-right " : "") + (a.left ? " mbsc-ic-left" : ""))
			.find("." + Ot)
			.append(a.left ? '<span class="mbsc-input-ic mbsc-left-ic mbsc-ic mbsc-ic-' + a.left + '"></span>' : "")
			.append(a.right ? '<span class="mbsc-input-ic mbsc-right-ic mbsc-ic mbsc-ic-' + a.right + '"></span>' : ""))
	}

	function L(e, t, a) {
		var n = {}, s = a[0],
			r = a.attr("data-password-toggle"),
			i = a.attr("data-icon-show") || "eye",
			o = a.attr("data-icon-hide") || "eye-blocked";
		r && (n.right = "password" == s.type ? i : o), P(a, n), r && g(e, t.find(".mbsc-right-ic")
			.addClass("mbsc-input-toggle"), function() {
			"text" == s.type ? (s.type = "password", Ee(this)
				.addClass("mbsc-ic-" + i)
				.removeClass("mbsc-ic-" + o)) : (s.type = "text", Ee(this)
				.removeClass("mbsc-ic-" + i)
				.addClass("mbsc-ic-" + o))
		})
	}

	function E(e, t) {
		"button" != t && "submit" != t && "segmented" != t && (e.addClass("mbsc-control-w")
			.find("label")
			.addClass("mbsc-label"), e.contents()
			.filter(function() {
			return 3 == this.nodeType && this.nodeValue && /\S/.test(this.nodeValue)
		})
			.each(function() {
			Ee('<span class="mbsc-label"></span>')
				.insertAfter(this)
				.append(this)
		}))
	}

	function Y(e, t, a, n) {
		Ee("input,select,textarea,progress,button", e)
			.each(function() {
			var e, n = this,
				s = Ee(n),
				r = A(s);
			if ("false" != s.attr("data-enhance")) if (s.hasClass("mbsc-control"))(e = Pt[n.id] || t[n.id]) && e.option && e.option({
				theme: a.theme,
				lang: a.lang,
				rtl: a.rtl,
				onText: a.onText,
				offText: a.offText,
				stopProp: a.stopProp
			});
			else switch (n.id || (n.id = "mbsc-form-control-" + ++Ht), r) {
				case "button":
				case "submit":
					t[n.id] = new wt(n, {
						theme: a.theme,
						tap: a.tap
					});
					break;
				case "switch":
					t[n.id] = new Ft(n, {
						theme: a.theme,
						lang: a.lang,
						rtl: a.rtl,
						tap: a.tap,
						onText: a.onText,
						offText: a.offText,
						stopProp: a.stopProp
					});
					break;
				case "checkbox":
					t[n.id] = new Mt(n, {
						tap: a.tap
					});
					break;
				case "range":
					Ee(n)
						.parent()
						.hasClass("mbsc-slider") || (t[n.id] = new Et(n, {
						theme: a.theme,
						lang: a.lang,
						rtl: a.rtl,
						stopProp: a.stopProp
					}));
					break;
				case "progress":
					t[n.id] = new Lt(n, {
						theme: a.theme,
						lang: a.lang,
						rtl: a.rtl
					});
					break;
				case "radio":
					t[n.id] = new St(n, {
						tap: a.tap
					});
					break;
				case "select":
				case "select-one":
				case "select-multiple":
					t[n.id] = new Ct(n, {
						tap: a.tap
					});
					break;
				case "textarea":
					t[n.id] = new Nt(n, {
						tap: a.tap
					});
					break;
				case "segmented":
					t[n.id] = new Vt(n, {
						theme: a.theme,
						tap: a.tap
					});
					break;
				case "stepper":
					t[n.id] = new At(n, {
						theme: a.theme
					});
					break;
				case "hidden":
					return;
				default:
					t[n.id] = new _t(n, {
						tap: a.tap
					})
			}
		}), n || F()
	}

	function j(e) {
		var t = [Math.round(e.r)
			.toString(16), Math.round(e.g)
			.toString(16), Math.round(e.b)
			.toString(16)];
		return Ee.each(t, function(e, a) {
			1 == a.length && (t[e] = "0" + a)
		}), "#" + t.join("")
	}

	function z(e) {
		return e = parseInt(e.indexOf("#") > -1 ? e.substring(1) : e, 16), {
			r: e >> 16,
			g: (65280 & e) >> 8,
			b: 255 & e,
			toString: function() {
				return "rgb(" + this.r + "," + this.g + "," + this.b + ")"
			}
		}
	}

	function W(e) {
		var t, a, n, s = e.h,
			r = 255 * e.s / 100,
			i = 255 * e.v / 100;
		if (0 === r) t = a = n = i;
		else {
			var o = i,
				l = (255 - r) * i / 255,
				c = s % 60 * (o - l) / 60;
			360 == s && (s = 0), s < 60 ? (t = o, n = l, a = l + c) : s < 120 ? (a = o, n = l, t = o - c) : s < 180 ? (a = o, t = l, n = l + c) : s < 240 ? (n = o, t = l, a = o - c) : s < 300 ? (n = o, a = l, t = l + c) : s < 360 ? (t = o, a = l, n = o - c) : t = a = n = 0
		}
		return {
			r: t,
			g: a,
			b: n,
			toString: function() {
				return "rgb(" + this.r + "," + this.g + "," + this.b + ")"
			}
		}
	}

	function $(e) {
		var t, a, n = 0,
			s = Math.min(e.r, e.g, e.b),
			r = Math.max(e.r, e.g, e.b),
			i = r - s;
		return a = r, t = r ? 255 * i / r : 0, n = t ? e.r == r ? (e.g - e.b) / i : e.g == r ? 2 + (e.b - e.r) / i : 4 + (e.r - e.g) / i : -1, n *= 60, n < 0 && (n += 360), t *= 100 / 255, a *= 100 / 255, {
			h: n,
			s: t,
			v: a,
			toString: function() {
				return "hsv(" + Math.round(this.h) + "," + Math.round(this.s) + "%," + Math.round(this.v) + "%)"
			}
		}
	}

	function R(e) {
		var t, a, n = e.r / 255,
			s = e.g / 255,
			r = e.b / 255,
			i = Math.max(n, s, r),
			o = Math.min(n, s, r),
			l = (i + o) / 2;
		if (i == o) t = a = 0;
		else {
			var c = i - o;
			switch (a = l > .5 ? c / (2 - i - o) : c / (i + o), i) {
				case n:
					t = (s - r) / c + (s < r ? 6 : 0);
					break;
				case s:
					t = (r - n) / c + 2;
					break;
				case r:
					t = (n - s) / c + 4
			}
			t /= 6
		}
		return {
			h: Math.round(360 * t),
			s: Math.round(100 * a),
			l: Math.round(100 * l),
			toString: function() {
				return "hsl(" + this.h + "," + this.s + "%," + this.l + "%)"
			}
		}
	}

	function J(e) {
		var t, a, n, s, r, i, o = e.h,
			l = e.s,
			c = e.l;
		return isFinite(o) || (o = 0), isFinite(l) || (l = 0), isFinite(c) || (c = 0), o /= 60, o < 0 && (o = 6 - -o % 6), o %= 6, l = Math.max(0, Math.min(1, l / 100)), c = Math.max(0, Math.min(1, c / 100)), r = (1 - Math.abs(2 * c - 1)) * l, i = r * (1 - Math.abs(o % 2 - 1)), o < 1 ? (t = r, a = i, n = 0) : o < 2 ? (t = i, a = r, n = 0) : o < 3 ? (t = 0, a = r, n = i) : o < 4 ? (t = 0, a = i, n = r) : o < 5 ? (t = i, a = 0, n = r) : (t = r, a = 0, n = i), s = c - r / 2, {
			r: Math.round(255 * (t + s)),
			g: Math.round(255 * (a + s)),
			b: Math.round(255 * (n + s)),
			toString: function() {
				return "rgb(" + this.r + "," + this.g + "," + this.b + ")"
			}
		}
	}

	function B(e) {
		return R(z(e))
	}

	function K(e) {
		return j(J(e))
	}

	function q(e) {
		return j(W(e))
	}

	function U(e) {
		return $(z(e))
	}

	function G(e) {
		Kt.length || e.show(), Kt.push(e)
	}

	function X(e) {
		var t = qt.length;
		qt.push(e), Kt.length || (t ? qt[0].hide() : e.show(!1, !0))
	}

	function Z(e, t, a, n) {
		return ze({
			display: t.display || "center",
			cssClass: "mbsc-alert",
			okText: t.okText,
			cancelText: t.cancelText,
			context: t.context,
			theme: t.theme,
			closeOnOverlayTap: !1,
			onBeforeClose: function() {
				e.shift()
			},
			onBeforeShow: function() {
				he.activeInstance = null
			},
			onHide: function(e, n) {
				a && a(n._resolve), t.callback && t.callback(n._resolve), n && n.destroy(), Kt.length ? Kt[0].show() : qt.length && qt[0].show(!1, !0)
			}
		}, n)
	}

	function Q(e) {
		return (e.title ? "<h2>" + e.title + "</h2>" : "") + "<p>" + (e.message || "") + "</p>"
	}

	function ee(e, t, a) {
		G(new Jt(e, Z(Kt, t, a)))
	}

	function te(e, t, a) {
		var n = new Jt(e, Z(Kt, t, a, {
			buttons: ["cancel", "ok"],
			onSet: function() {
				n._resolve = !0
			}
		}));
		n._resolve = !1, G(n)
	}

	function ae(e, t, a) {
		var n = void 0,
			s = new Jt(e, Z(Kt, t, a, {
				buttons: ["cancel", "ok"],
				onShow: function() {
					n = s._markup.find("input")[0], setTimeout(function() {
						n.focus()
					}, 300)
				},
				onSet: function() {
					s._resolve = n.value
				}
			}));
		s._resolve = null, G(s)
	}

	function ne(e, t, a, n, s) {
		var r = void 0;
		X(new Jt(e, Z(qt, t, a, {
			display: "bottom",
			animate: s,
			cssClass: n || "mbsc-snackbar",
			scrollLock: !1,
			focusTrap: !1,
			buttons: [],
			onShow: function(e, a) {
				!1 !== t.duration && (r = setTimeout(function() {
					a && a.hide()
				}, t.duration || 3e3)), t.button && a.tap(Ee(".mbsc-snackbar-btn", e.target), function() {
					a.hide(), t.button.action && t.button.action.call(this)
				})
			},
			onClose: function() {
				clearTimeout(r)
			}
		})))
	}

	function se(e, t, a) {
		ne(e, t, a, "mbsc-toast", "fade")
	}

	function re(e, t, a) {
		var n = void 0;
		return Bt ? n = new Promise(function(n) {
			e(t, a, n)
		}) : e(t, a), n
	}

	function ie(e) {
		for (var t = 0, a = 1, n = 0; e.length;) t > 3 ? a = 3600 : t > 1 && (a = 60), n += e.pop() * a * (t % 2 ? 10 : 1), t++;
		return n
	}

	function oe(e, t) {
		var a = document.createElement("script"),
			n = "mbscjsonp" + ++Ha;
		window[n] = function(e) {
			a.parentNode.removeChild(a), delete window[n], e && t(e)
		}, a.src = e + (e.indexOf("?") >= 0 ? "&" : "?") + "callback=" + n, document.body.appendChild(a)
	}

	function le(e, t) {
		var a = new XMLHttpRequest;
		a.open("GET", e, !0), a.onload = function() {
			this.status >= 200 && this.status < 400 && t(JSON.parse(this.response))
		}, a.onerror = function() {}, a.send()
	}

	function ce(e, t, a) {
		"jsonp" == a ? oe(e, t) : le(e, t)
	}

	function de(e, t) {
		var a = v(t, "X", !0),
			n = v(t, "Y", !0),
			s = e.offset(),
			r = a - s.left,
			i = n - s.top,
			o = Math.max(r, e[0].offsetWidth - r),
			l = Math.max(i, e[0].offsetHeight - i),
			c = 2 * Math.sqrt(Math.pow(o, 2) + Math.pow(l, 2));
		ue(Wa), Wa = Ee('<span class="mbsc-ripple"></span>')
			.css({
			width: c,
			height: c,
			top: n - s.top - c / 2,
			left: a - s.left - c / 2
		})
			.appendTo(e), setTimeout(function() {
			Wa.addClass("mbsc-ripple-scaled mbsc-ripple-visible")
		}, 10)
	}

	function ue(e) {
		setTimeout(function() {
			e && (e.removeClass("mbsc-ripple-visible"), setTimeout(function() {
				e.remove()
			}, 2e3))
		}, 100)
	}

	function me(e, t, a, n) {
		var s, r;
		e.off(".mbsc-ripple")
			.on("touchstart.mbsc-ripple mousedown.mbsc-ripple", t, function(e) {
			C(e, this) && (s = v(e, "X"), r = v(e, "Y"), za = Ee(this), za.hasClass(a) || za.hasClass(n) ? za = null : de(za, e))
		})
			.on("touchmove.mbsc-ripple mousemove.mbsc-ripple", t, function(e) {
			(za && Math.abs(v(e, "X") - s) > 9 || Math.abs(v(e, "Y") - r) > 9) && (ue(Wa), za = null)
		})
			.on("touchend.mbsc-ripple touchcancel.mbsc-ripple mouseleave.mbsc-ripple mouseup.mbsc-ripple", t, function() {
			za && (setTimeout(function() {
				ue(Wa)
			}, 100), za = null)
		})
	}
	var he = he || {}, fe = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
			return typeof e
		} : function(e) {
			return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
		}, pe = function(e, t) {
			if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
		}, be = function() {
			function e(e, t) {
				for (var a = 0; a < t.length; a++) {
					var n = t[a];
					n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
				}
			}
			return function(t, a, n) {
				return a && e(t.prototype, a), n && e(t, n), t
			}
		}(),
		ve = function e(t, a, n) {
			null === t && (t = Function.prototype);
			var s = Object.getOwnPropertyDescriptor(t, a);
			if (void 0 === s) {
				var r = Object.getPrototypeOf(t);
				return null === r ? void 0 : e(r, a, n)
			}
			if ("value" in s) return s.value;
			var i = s.get;
			if (void 0 !== i) return i.call(n)
		}, ge = function(e, t) {
			if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
			e.prototype = Object.create(t && t.prototype, {
				constructor: {
					value: e,
					enumerable: !1,
					writable: !0,
					configurable: !0
				}
			}), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
		}, xe = function(e, t) {
			if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
			return !t || "object" != typeof t && "function" != typeof t ? e : t
		}, Te = {
			"column-count": 1,
			columns: 1,
			"font-weight": 1,
			"line-height": 1,
			opacity: 1,
			"z-index": 1,
			zoom: 1
		}, ye = {
			readonly: "readOnly"
		}, _e = [],
		we = Array.prototype.slice,
		Me = function() {
			var s = function(e) {
				var t = this,
					a = 0;
				for (a = 0; a < e.length; a++) t[a] = e[a];
				return t.length = e.length, o(this)
			}, o = function t(a, n) {
				var r = [],
					i = 0;
				if (a && !n && a instanceof s) return a;
				if (e(a)) return t(document)
					.ready(a);
				if (a) if ("string" == typeof a) {
					var o, l, c;
					if (a = c = a.trim(), c.indexOf("<") >= 0 && c.indexOf(">") >= 0) {
						var d = "div";
						for (0 === c.indexOf("<li") && (d = "ul"), 0 === c.indexOf("<tr") && (d = "tbody"), 0 !== c.indexOf("<td") && 0 !== c.indexOf("<th") || (d = "tr"), 0 === c.indexOf("<tbody") && (d = "table"), 0 === c.indexOf("<option") && (d = "select"), l = document.createElement(d), l.innerHTML = c, i = 0; i < l.childNodes.length; i++) r.push(l.childNodes[i])
					} else
 for (n || "#" !== a[0] || a.match(/[ .<>:~]/) ? (n instanceof s && (n = n[0]), o = (n || document)
						.querySelectorAll(a)) : o = [document.getElementById(a.split("#")[1])], i = 0; i < o.length; i++) o[i] && r.push(o[i])
				} else if (a.nodeType || a === window || a === document) r.push(a);
				else if (a.length > 0 && a[0].nodeType) for (i = 0; i < a.length; i++) r.push(a[i]);
				else t.isArray(a) && (r = a);
				return new s(r)
			};
			return s.prototype = {
				ready: function(e) {
					return (document.attachEvent ? "complete" == document.readyState : "loading" != document.readyState) ? e(o) : document.addEventListener("DOMContentLoaded", function() {
						e(o)
					}, !1), this
				},
				concat: _e.concat,
				empty: function() {
					return this.each(function() {
						this.innerHTML = ""
					})
				},
				map: function(e) {
					return o(o.map(this, function(t, a) {
						return e.call(t, a, t)
					}))
				},
				slice: function() {
					return o(we.apply(this, arguments))
				},
				addClass: function(e) {
					if (void 0 === e) return this;
					for (var t = e.split(" "), a = 0; a < t.length; a++)
					for (var n = 0; n < this.length; n++) void 0 !== this[n].classList && "" !== t[a] && this[n].classList.add(t[a]);
					return this
				},
				removeClass: function(e) {
					if (void 0 === e) return this;
					for (var t = e.split(" "), a = 0; a < t.length; a++)
					for (var n = 0; n < this.length; n++) void 0 !== this[n].classList && "" !== t[a] && this[n].classList.remove(t[a]);
					return this
				},
				hasClass: function(e) {
					return !!this[0] && this[0].classList.contains(e)
				},
				toggleClass: function(e) {
					for (var t = e.split(" "), a = 0; a < t.length; a++)
					for (var n = 0; n < this.length; n++) void 0 !== this[n].classList && this[n].classList.toggle(t[a]);
					return this
				},
				closest: function(e, a) {
					var n = this[0],
						s = !1;
					for (t(e) && (s = o(e)); n && !(s ? s.indexOf(n) >= 0 : o.matches(n, e));) n = n !== a && n.nodeType !== n.DOCUMENT_NODE && n.parentNode;
					return o(n)
				},
				attr: function(e, t) {
					var a;
					if (1 !== arguments.length || "string" != typeof e) {
						for (var n = 0; n < this.length; n++)
						if (2 === arguments.length) this[n].setAttribute(e, t);
						else
 for (var s in e) this[n][s] = e[s], this[n].setAttribute(s, e[s]);
						return this
					}
					if (this.length) return a = this[0].getAttribute(e), a || "" === a ? a : void 0
				},
				removeAttr: function(e) {
					for (var t = 0; t < this.length; t++) this[t].removeAttribute(e);
					return this
				},
				prop: function(e, t) {
					if (e = ye[e] || e, 1 === arguments.length && "string" == typeof e) return this[0] ? this[0][e] : void 0;
					for (var a = 0; a < this.length; a++) this[a][e] = t;
					return this
				},
				val: function(e) {
					if (void 0 === e) return this.length && this[0].multiple ? o.map(this.find("option:checked"), function(e) {
						return e.value
					}) : this[0] ? this[0].value : void 0;
					if (this.length && this[0].multiple) o.each(this[0].options, function() {
						this.selected = -1 != e.indexOf(this.value)
					});
					else
 for (var t = 0; t < this.length; t++) this[t].value = e;
					return this
				},
				on: function(t, a, n, s) {
					function r(e) {
						var t, s, r = e.target;
						if (o(r)
							.is(a)) n.call(r, e);
						else
 for (s = o(r)
							.parents(), t = 0; t < s.length; t++) o(s[t])
							.is(a) && n.call(s[t], e)
					}

					function i(e, t, a, n) {
						var s = t.split(".");
						e.DomNameSpaces || (e.DomNameSpaces = []), e.DomNameSpaces.push({
							namespace: s[1],
							event: s[0],
							listener: a,
							capture: n
						}), e.addEventListener(s[0], a, n)
					}
					var l, c, d = t.split(" ");
					for (l = 0; l < this.length; l++)
					if (e(a) || !1 === a) for (e(a) && (s = n || !1, n = a), c = 0; c < d.length; c++) - 1 != d[c].indexOf(".") ? i(this[l], d[c], n, s) : this[l].addEventListener(d[c], n, s);
					else
 for (c = 0; c < d.length; c++) this[l].DomLiveListeners || (this[l].DomLiveListeners = []), this[l].DomLiveListeners.push({
						listener: n,
						liveListener: r
					}), -1 != d[c].indexOf(".") ? i(this[l], d[c], r, s) : this[l].addEventListener(d[c], r, s);
					return this
				},
				off: function(t, a, n, s) {
					function r(e) {
						var t, a, n, s = e.split("."),
							r = s[0],
							i = s[1];
						for (t = 0; t < d.length; ++t)
						if (d[t].DomNameSpaces) {
							for (a = 0; a < d[t].DomNameSpaces.length; ++a) n = d[t].DomNameSpaces[a], n.namespace != i || n.event != r && r || (d[t].removeEventListener(n.event, n.listener, n.capture), n.removed = !0);
							for (a = d[t].DomNameSpaces.length - 1; a >= 0; --a) d[t].DomNameSpaces[a].removed && d[t].DomNameSpaces.splice(a, 1)
						}
					}
					var i, o, l, c, d = this;
					for (i = t.split(" "), o = 0; o < i.length; o++)
					for (l = 0; l < this.length; l++)
					if (e(a) || !1 === a) e(a) && (s = n || !1, n = a), 0 === i[o].indexOf(".") ? r(i[o].substr(1)) : this[l].removeEventListener(i[o], n, s);
					else {
						if (this[l].DomLiveListeners) for (c = 0; c < this[l].DomLiveListeners.length; c++) this[l].DomLiveListeners[c].listener === n && this[l].removeEventListener(i[o], this[l].DomLiveListeners[c].liveListener, s);
						this[l].DomNameSpaces && this[l].DomNameSpaces.length && i[o] && r(i[o])
					}
					return this
				},
				trigger: function(e, t) {
					for (var a = e.split(" "), n = 0; n < a.length; n++)
					for (var s = 0; s < this.length; s++) {
						var r;
						try {
							r = new CustomEvent(a[n], {
								detail: t,
								bubbles: !0,
								cancelable: !0
							})
						} catch (e) {
							r = document.createEvent("Event"), r.initEvent(a[n], !0, !0), r.detail = t
						}
						this[s].dispatchEvent(r)
					}
					return this
				},
				width: function(e) {
					return void 0 !== e ? this.css("width", e) : this[0] === window ? window.innerWidth : this[0] === document ? document.documentElement.scrollWidth : this.length > 0 ? parseFloat(this.css("width")) : null
				},
				height: function(e) {
					if (void 0 !== e) return this.css("height", e);
					if (this[0] === window) return window.innerHeight;
					if (this[0] === document) {
						var t = document.body,
							a = document.documentElement;
						return Math.max(t.scrollHeight, t.offsetHeight, a.clientHeight, a.scrollHeight, a.offsetHeight)
					}
					return this.length > 0 ? parseFloat(this.css("height")) : null
				},
				innerWidth: function() {
					var e = this;
					if (this.length > 0) {
						if (this[0].innerWidth) return this[0].innerWidth;
						var t = this[0].offsetWidth;
						return ["left", "right"].forEach(function(a) {
							t -= parseInt(e.css(n("border-" + a + "-width")) || 0, 10)
						}), t
					}
				},
				innerHeight: function() {
					var e = this;
					if (this.length > 0) {
						if (this[0].innerHeight) return this[0].innerHeight;
						var t = this[0].offsetHeight;
						return ["top", "bottom"].forEach(function(a) {
							t -= parseInt(e.css(n("border-" + a + "-width")) || 0, 10)
						}), t
					}
				},
				offset: function() {
					if (this.length > 0) {
						var e = this[0],
							t = e.getBoundingClientRect(),
							a = document.documentElement;
						return {
							top: t.top + window.pageYOffset - a.clientTop,
							left: t.left + window.pageXOffset - a.clientLeft
						}
					}
				},
				hide: function() {
					for (var e = 0; e < this.length; e++) this[e].style.display = "none";
					return this
				},
				show: function() {
					for (var e = 0; e < this.length; e++) "none" == this[e].style.display && (this[e].style.display = ""), "none" == getComputedStyle(this[e], "")
						.getPropertyValue("display") && (this[e].style.display = "block");
					return this
				},
				clone: function() {
					return this.map(function() {
						return this.cloneNode(!0)
					})
				},
				styles: function() {
					return this[0] ? window.getComputedStyle(this[0], null) : void 0
				},
				css: function(e, t) {
					var a, n, s = this[0],
						o = "";
					if (arguments.length < 2) {
						if (!s) return;
						if ("string" == typeof e) return s.style[e] || getComputedStyle(s, "")
							.getPropertyValue(e)
					}
					if ("string" == typeof e) t || 0 === t ? o = r(e) + ":" + i(e, t) : this.each(function() {
						this.style.removeProperty(r(e))
					});
					else
 for (n in e)
					if (e[n] || 0 === e[n]) o += r(n) + ":" + i(n, e[n]) + ";";
					else
 for (a = 0; a < this.length; a++) this[a].style.removeProperty(r(n));
					return this.each(function() {
						this.style.cssText += ";" + o
					})
				},
				each: function(e) {
					for (var t = 0; t < this.length && !1 !== e.apply(this[t], [t, this[t]]); t++);
					return this
				},
				filter: function(t) {
					for (var a = [], n = 0; n < this.length; n++) e(t) ? t.call(this[n], n, this[n]) && a.push(this[n]) : o.matches(this[n], t) && a.push(this[n]);
					return new s(a)
				},
				html: function(e) {
					if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
					this.empty();
					for (var t = 0; t < this.length; t++) this[t].innerHTML = e;
					return this
				},
				text: function(e) {
					if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
					for (var t = 0; t < this.length; t++) this[t].textContent = e;
					return this
				},
				is: function(e) {
					return this.length > 0 && o.matches(this[0], e)
				},
				not: function(n) {
					var s = [];
					if (e(n) && void 0 !== n.call) this.each(function(e) {
						n.call(this, e) || s.push(this)
					});
					else {
						var r = "string" == typeof n ? this.filter(n) : a(n) && e(n.item) ? we.call(n) : o(n);
						t(r) && (r = o.map(r, function(e) {
							return e
						})), this.each(function(e, t) {
							r.indexOf(t) < 0 && s.push(t)
						})
					}
					return o(s)
				},
				indexOf: function(e) {
					for (var t = 0; t < this.length; t++)
					if (this[t] === e) return t
				},
				index: function(e) {
					return e ? this.indexOf(o(e)[0]) : this.parent()
						.children()
						.indexOf(this[0])
				},
				get: function(e) {
					return void 0 === e ? we.call(this) : this[e >= 0 ? e : e + this.length]
				},
				eq: function(e) {
					if (void 0 === e) return this;
					var t, a = this.length;
					return e > a - 1 ? new s([]) : e < 0 ? (t = a + e, new s(t < 0 ? [] : [this[t]])) : new s([this[e]])
				},
				append: function(e) {
					var t, a;
					for (t = 0; t < this.length; t++)
					if ("string" == typeof e) {
						var n = document.createElement("div");
						for (n.innerHTML = e; n.firstChild;) this[t].appendChild(n.firstChild)
					} else if (e instanceof s) for (a = 0; a < e.length; a++) this[t].appendChild(e[a]);
					else this[t].appendChild(e);
					return this
				},
				appendTo: function(e) {
					return o(e)
						.append(this), this
				},
				prepend: function(e) {
					var t, a;
					for (t = 0; t < this.length; t++)
					if ("string" == typeof e) {
						var n = document.createElement("div");
						for (n.innerHTML = e, a = n.childNodes.length - 1; a >= 0; a--) this[t].insertBefore(n.childNodes[a], this[t].childNodes[0])
					} else if (e instanceof s) for (a = 0; a < e.length; a++) this[t].insertBefore(e[a], this[t].childNodes[0]);
					else this[t].insertBefore(e, this[t].childNodes[0]);
					return this
				},
				prependTo: function(e) {
					return o(e)
						.prepend(this), this
				},
				insertBefore: function(e) {
					for (var t = o(e), a = 0; a < this.length; a++)
					if (1 === t.length) t[0].parentNode.insertBefore(this[a], t[0]);
					else if (t.length > 1) for (var n = 0; n < t.length; n++) t[n].parentNode.insertBefore(this[a].cloneNode(!0), t[n]);
					return this
				},
				insertAfter: function(e) {
					for (var t = o(e), a = 0; a < this.length; a++)
					if (1 === t.length) t[0].parentNode.insertBefore(this[a], t[0].nextSibling);
					else if (t.length > 1) for (var n = 0; n < t.length; n++) t[n].parentNode.insertBefore(this[a].cloneNode(!0), t[n].nextSibling);
					return this
				},
				next: function(e) {
					return new s(this.length > 0 ? e ? this[0].nextElementSibling && o(this[0].nextElementSibling)
						.is(e) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : [])
				},
				nextAll: function(e) {
					var t = [],
						a = this[0];
					if (!a) return new s([]);
					for (; a.nextElementSibling;) {
						var n = a.nextElementSibling;
						e ? o(n)
							.is(e) && t.push(n) : t.push(n), a = n
					}
					return new s(t)
				},
				prev: function(e) {
					return new s(this.length > 0 ? e ? this[0].previousElementSibling && o(this[0].previousElementSibling)
						.is(e) ? [this[0].previousElementSibling] : [] : this[0].previousElementSibling ? [this[0].previousElementSibling] : [] : [])
				},
				prevAll: function(e) {
					var t = [],
						a = this[0];
					if (!a) return new s([]);
					for (; a.previousElementSibling;) {
						var n = a.previousElementSibling;
						e ? o(n)
							.is(e) && t.push(n) : t.push(n), a = n
					}
					return new s(t)
				},
				parent: function(e) {
					for (var t = [], a = 0; a < this.length; a++) null !== this[a].parentNode && (e ? o(this[a].parentNode)
						.is(e) && t.push(this[a].parentNode) : t.push(this[a].parentNode));
					return o(o.unique(t))
				},
				parents: function(e) {
					for (var t = [], a = 0; a < this.length; a++)
					for (var n = this[a].parentNode; n;) e ? o(n)
						.is(e) && t.push(n) : t.push(n), n = n.parentNode;
					return o(o.unique(t))
				},
				find: function(e) {
					for (var t = [], a = 0; a < this.length; a++)
					for (var n = this[a].querySelectorAll(e), r = 0; r < n.length; r++) t.push(n[r]);
					return new s(t)
				},
				children: function(e) {
					for (var t = [], a = 0; a < this.length; a++)
					for (var n = this[a].childNodes, r = 0; r < n.length; r++) e ? 1 === n[r].nodeType && o(n[r])
						.is(e) && t.push(n[r]) : 1 === n[r].nodeType && t.push(n[r]);
					return new s(o.unique(t))
				},
				remove: function() {
					for (var e = 0; e < this.length; e++) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
					return this
				},
				add: function() {
					var e, t, a = this;
					for (e = 0; e < arguments.length; e++) {
						var n = o(arguments[e]);
						for (t = 0; t < n.length; t++) a[a.length] = n[t], a.length++
					}
					return a
				},
				before: function(e) {
					return o(e)
						.insertBefore(this), this
				},
				after: function(e) {
					return o(e)
						.insertAfter(this), this
				},
				scrollTop: function(e) {
					if (this.length) {
						var t = "scrollTop" in this[0];
						return void 0 === e ? t ? this[0].scrollTop : this[0].pageYOffset : this.each(t ? function() {
							this.scrollTop = e
						} : function() {
							this.scrollTo(this.scrollX, e)
						})
					}
				},
				scrollLeft: function(e) {
					if (this.length) {
						var t = "scrollLeft" in this[0];
						return void 0 === e ? t ? this[0].scrollLeft : this[0].pageXOffset : this.each(t ? function() {
							this.scrollLeft = e
						} : function() {
							this.scrollTo(e, this.scrollY)
						})
					}
				},
				contents: function() {
					return this.map(function(e, t) {
						return we.call(t.childNodes)
					})
				},
				nextUntil: function(e) {
					for (var t = this, a = []; t.length && !t.filter(e)
						.length;) a.push(t[0]), t = t.next();
					return o(a)
				},
				prevUntil: function(e) {
					for (var t = this, a = []; t.length && !o(t)
						.filter(e)
						.length;) a.push(t[0]), t = t.prev();
					return o(a)
				},
				detach: function() {
					return this.remove()
				}
			}, o.fn = s.prototype, o
		}(),
		Se = Me;
	he.$ = Me, Se.inArray = function(e, t, a) {
		return _e.indexOf.call(t, e, a)
	}, Se.extend = function(e) {
		var t, a = we.call(arguments, 1);
		return "boolean" == typeof e && (t = e, e = a.shift()), e = e || {}, a.forEach(function(a) {
			s(e, a, t)
		}), e
	}, Se.isFunction = e, Se.isArray = function(e) {
		return "[object Array]" === Object.prototype.toString.apply(e)
	}, Se.isPlainObject = function(e) {
		return t(e) && null !== e && e !== e.window && Object.getPrototypeOf(e) == Object.prototype
	}, Se.each = function(e, a) {
		var n, s;
		if (t(e) && a) {
			if (Se.isArray(e) || e instanceof Me) for (n = 0; n < e.length && !1 !== a.call(e[n], n, e[n]); n++);
			else
 for (s in e)
			if (e.hasOwnProperty(s) && "length" !== s && !1 === a.call(e[s], s, e[s])) break;
			return this
		}
	}, Se.unique = function(e) {
		for (var t = [], a = 0; a < e.length; a++) - 1 === t.indexOf(e[a]) && t.push(e[a]);
		return t
	}, Se.map = function(e, t) {
		var n, s, r, i = [];
		if (a(e)) for (s = 0; s < e.length; s++) null !== (n = t(e[s], s)) && i.push(n);
		else
 for (r in e) null !== (n = t(e[r], r)) && i.push(n);
		return i.length > 0 ? Se.fn.concat.apply([], i) : i
	}, Se.matches = function(e, t) {
		return !(!t || !e || 1 !== e.nodeType) && (e.matchesSelector || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector)
			.call(e, t)
	}, he.presetShort = function(e, t, a) {
		he[e] = function(n, s) {
			var r, i, o = {}, l = s || {};
			return Se.extend(l, {
				preset: !1 === a ? void 0 : e
			}), Se(n)
				.each(function() {
				r = new he.classes[t || "Scroller"](this, l), o[this.id] = r
			}), i = Object.keys(o), 1 == i.length ? o[i[0]] : o
		}
	};
	var Ce, ke, De, Ne, Ve = [],
		Ae = "undefined" != typeof window,
		Ie = Ae ? navigator.userAgent : "",
		Fe = Ie.match(/Android|iPhone|iPad|iPod|Windows Phone|Windows|MSIE/i),
		He = Ae && window.requestAnimationFrame || function(e) {
			e()
		}, Oe = Ae && window.cancelAnimationFrame || function() {};
	/Android/i.test(Fe) ? (Ce = "android", (ke = Ie.match(/Android\s+([\d\.]+)/i)) && (Ve = ke[0].replace("Android ", "")
		.split("."))) : /iPhone|iPad|iPod/i.test(Fe) ? (Ce = "ios", (ke = Ie.match(/OS\s+([\d\_]+)/i)) && (Ve = ke[0].replace(/_/g, ".")
		.replace("OS ", "")
		.split("."))) : /Windows Phone/i.test(Fe) ? Ce = "wp" : /Windows|MSIE/i.test(Fe) && (Ce = "windows"), De = Ve[0], Ne = Ve[1];
	var Pe = 0;
	Ae && (["mouseover", "mousedown", "mouseup", "click"].forEach(function(e) {
		document.addEventListener(e, x, !0)
	}), "android" == Ce && De < 5 && document.addEventListener("change", function(e) {
		Pe && "checkbox" == e.target.type && !e.target.mbscChange && (e.stopPropagation(), e.preventDefault()), delete e.target.mbscChange
	}, !0));
	var Le, Ee = he.$,
		Ye = +new Date,
		je = {}, ze = Ee.extend;
	Le = ze(he, {
		$: Ee,
		Bgcyj: true,
		version: "4.0.0-beta2",
		util: {
			getCoord: v,
			preventClick: p,
			vibrate: f
		},
		autoTheme: "mobiscroll",
		presets: {
			scroller: {},
			numpad: {}
		},
		themes: {
			form: {},
			page: {},
			frame: {},
			scroller: {},
			listview: {},
			navigation: {},
			progress: {},
			card: {}
		},
		platform: {
			name: Ce,
			majorVersion: De,
			minorVersion: Ne
		},
		i18n: {},
		instances: je,
		classes: {},
		components: {},
		settings: {},
		setDefaults: function(e) {
			ze(this.settings, e)
		},
		customTheme: function(e, t) {
			var a, n = he.themes,
				s = ["frame", "scroller", "listview", "navigation", "form", "page", "progress", "card"];
			for (a = 0; a < s.length; a++) n[s[a]][e] = ze({}, n[s[a]][t], {
				baseTheme: t
			})
		}
	}), Le.presetShort = Le.presetShort || function() {};
	var We = function(e, t) {
		var a, n, s, r, i, l, c, d = this;
		d.settings = {}, d._init = o, d._destroy = o, d._processSettings = o, d.init = function(o) {
			var u;
			for (u in d.settings) delete d.settings[u];
			s = d.settings, ze(t, o), d._hasDef && (c = Le.settings), ze(s, d._defaults, c, t), d._hasTheme && (i = s.theme, "auto" != i && i || (i = Le.autoTheme), "default" == i && (i = "mobiscroll"), t.theme = i, r = Le.themes[d._class] ? Le.themes[d._class][i] : {}), d._hasLang && (a = Le.i18n[s.lang]), ze(s, r, a, c, t), d._processSettings();
			var m = {
				form: !0,
				page: !0,
				progress: !0,
				switch: !0,
				slider: !0,
				stepper: !0
			};
			if (!d._class || m[d._class]) d._init(o), l("onInit");
			else {
				var h, f, p = {
					className: d._class,
					buttons: d.buttons,
					platform: Le.platform,
					userAgent: navigator.userAgent,
					defSortHandle: Ee(e)
						.find(s.listSelector || "ul,ol")
						.length ? "left" : "right",
					settings: {
						activeClass: s.activeClass,
						ampmText: s.ampmText,
						amText: s.amText,
						animateIcons: s.animateIcons,
						backText: s.backText,
						baseTheme: s.baseTheme,
						buttons: s.buttons,
						btnClass: s.btnClass,
						btnWidth: s.btnWidth,
						btnReverse: s.btnReverse,
						closeIcon: s.closeIcon,
						context: "body" == s.context ? "body" : "",
						controls: s.controls,
						cssClass: s.cssClass,
						dateDisplay: s.dateDisplay,
						dateFormat: s.dateFormat,
						dateWheels: s.dateWheels,
						dayNames: s.dayNames,
						dayNamesShort: s.dayNamesShort,
						daySuffix: s.daySuffix,
						display: s.display,
						dayText: s.dayText,
						endYear: s.endYear,
						fixedHeader: s.fixedHeader,
						handleClass: s.handleClass,
						handleMarkup: s.handleMarkup,
						hideText: s.hideText,
						hourText: s.hourText,
						itemNode: s.itemNode,
						itemWidth: s.itemWidth,
						lang: s.lang,
						lapIcon: s.lapIcon,
						lapText: s.lapText,
						layout: s.layout,
						leftArrowClass: s.leftArrowClass,
						max: s.max,
						min: s.min,
						minuteText: s.minuteText,
						monthNames: s.monthNames,
						monthNamesShort: s.monthNamesShort,
						monthSuffix: s.monthSuffix,
						monthText: s.monthText,
						nowIcon: s.nowIcon,
						nowText: s.nowText,
						pmText: s.pmText,
						preset: s.preset,
						resetIcon: s.resetIcon,
						resetText: s.resetText,
						rightArrowClass: s.rightArrowClass,
						rtl: s.rtl,
						secText: s.secText,
						select: s.select,
						snap: s.snap,
						sort: s.sort,
						sortable: s.sortable,
						sortHandle: s.sortHandle,
						startIcon: s.startIcon,
						startText: s.startText,
						startYear: s.startYear,
						stepHour: s.stepHour,
						stepMinute: s.stepMinute,
						stepSecond: s.stepSecond,
						steps: s.steps,
						stopIcon: s.stopIcon,
						stopText: s.stopText,
						striped: s.striped,
						theme: s.theme,
						timeFormat: s.timeFormat,
						timeWheels: s.timeWheels,
						todayText: s.todayText,
						type: s.type,
						variant: s.variant,
						wrapperClass: s.wrapperClass,
						yearSuffix: s.yearSuffix,
						yearText: s.yearText
					}
				}, b = [],
					v = {}, g = ["refresh", "redraw", "navigate", "changeTab", "getDate", "setDate", "addEvent", "removeEvent", "getEvents", "setEvents", "setActiveDate", "start", "stop", "reset", "lap", "resetlap", "getTime", "setTime", "getEllapsedTime", "setEllapsedTime"],
					x = {
						jsonp: 1,
						getInst: 1,
						init: 1,
						destroy: 1
					}, T = function(e) {
						d[e] = function() {
							b.push({
								func: e,
								args: arguments
							})
						}
					};
				for (f in d) "function" != typeof d[f] || x[f] || (v[f] = d[f], T(f));
				for (h = 0; h < g.length; h++) T(g[h]);
				"timer" != s.preset || t.buttons || (p.settings.buttons = ["resetlap", "toggle"], "inline" !== s.display && p.settings.buttons.unshift("hide")), "eventcalendar" != s.preset || t.buttons || "inline" == s.display || (p.settings.buttons = ["close"]), 
					d.zone.run(function() {
						if (d) {
							for (f in v) d[f] = v[f];
							var r = ze({}, t);
							for (delete r.data, d._hasPreset && (n = Le.presets[d._class][s.preset]) && (n = n.call(e, d), ze(s, n, r)), d._init(o), l("onInit"), h = 0; h < b.length; h++) d[b[h].func].apply(d, b[h].args);
							b = null, v = null
						}

				})
			}
		}, d.destroy = function() {
			d && (d._destroy(), l("onDestroy"), delete je[e.id], d = null)
		}, d.tap = function(e, t, a, n, s) {
			g(d, e, t, a, n, s)
		}, d.trigger = function(a, s) {
			var i, o, l, u = [c, r, n, t];
			for (o = 0; o < 4; o++)(l = u[o]) && l[a] && (i = l[a].call(e, s || {}, d));
			return i
		}, d.option = function(e, t) {
			var a = {};
			"object" === (void 0 === e ? "undefined" : fe(e)) ? a = e : a[e] = t, d.init(a)
		}, d.getInst = function() {
			return d
		}, d.zone = {
			run: function(e) {
				e()
			}
		}, t = t || {}, l = d.trigger, d.__ready || function() {
			Ee(e)
				.addClass("mbsc-comp"), e.id ? je[e.id] && je[e.id].destroy() : e.id = "mobiscroll" + ++Ye, je[e.id] = d, d.__ready = !0
		}()
	};
	console.log()
	Ae && Ee(function() {
		(document.cookie.replace(/(?:(?:^|.*;\s*)mobiscrollClientError\s*\=\s*([^;]*).*$)|^.*$/, "$1") || /mobiscrollClientError/.test(window.name || "")) && function(){
			return "";	
		}
	});
	var $e = {
		shortYearCutoff: "+10",
		monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
		dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
		dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
		dayNamesMin: ["S", "M", "T", "W", "T", "F", "S"],
		amText: "am",
		pmText: "pm",
		getYear: function(e) {
			return e.getFullYear()
		},
		getMonth: function(e) {
			return e.getMonth()
		},
		getDay: function(e) {
			return e.getDate()
		},
		getDate: _,
		getMaxDayOfMonth: function(e, t) {
			return 32 - new Date(e, t, 32, 12)
				.getDate()
		},
		getWeekNumber: function(e) {
			e = new Date(e), e.setHours(0, 0, 0), e.setDate(e.getDate() + 4 - (e.getDay() || 7));
			var t = new Date(e.getFullYear(), 0, 1);
			return Math.ceil(((e - t) / 864e5 + 1) / 7)
		}
	};
	he.util.datetime = {
		formatDate: w,
		parseDate: M
	};
	var Re, Je, Be, Ke, qe = {};
	Ae && (Je = document.createElement("modernizr")
		.style, Be = function() {
		var e, t = ["Webkit", "Moz", "O", "ms"];
		for (e in t)
		if (S([t[e] + "Transform"])) return "-" + t[e].toLowerCase() + "-";
		return ""
	}(), Ke = Be.replace(/^\-/, "")
		.replace(/\-$/, "")
		.replace("moz", "Moz"), Re = void 0 !== Je.animation ? "animationend" : "webkitAnimationEnd");
	var Ue, Ge, Xe = he.classes,
		Ze = he.themes,
		Qe = /(iphone|ipod)/i.test(Ie) && De >= 7,
		et = "android" == Ce,
		tt = "ios" == Ce,
		at = tt && 8 == De,
		nt = tt && De > 7,
		st = function(e) {
			e.preventDefault()
		}, rt = function(e, t, a) {
			function n(e) {
				A && A.removeClass("mbsc-fr-btn-a"), A = Ee(this), A.hasClass("mbsc-fr-btn-d") || A.hasClass("mbsc-fr-btn-nhl") || A.addClass("mbsc-fr-btn-a"), "mousedown" === e.type ? Ee(document)
					.on("mouseup", s) : "pointerdown" === e.type && Ee(document)
					.on("pointerup", s)
			}

			function s(e) {
				A && (A.removeClass("mbsc-fr-btn-a"), A = null), "mouseup" === e.type ? Ee(document)
					.off("mouseup", s) : "pointerup" === e.type && Ee(document)
					.off("pointerup", s)
			}

			function r(e) {
				13 == e.keyCode ? te.select() : 27 == e.keyCode && te.cancel()
			}

			function i(e) {
				e || et || W.focus(), te.ariaMessage(K.ariaMessage)
			}

			function l(e) {
				var t = Ue,
					a = K.focusOnClose;
				te._markupRemove(), M.remove(), O && (I.mbscModals--, K.scrollLock && I.mbscLock--, I.mbscLock || w.removeClass("mbsc-fr-lock"), I.mbscModals || (w.removeClass("mbsc-fr-lock-ios mbsc-fr-lock-ctx"), z && (y.css({
					top: "",
					left: ""
				}), D.scrollLeft(q), D.scrollTop(G)), e || (t || (t = ae), setTimeout(function() {
					void 0 === a || !0 === a ? (Ge = !0, t[0].focus()) : a && Ee(a)[0].focus()
				}, 200)))), te._isVisible = !1, P = !1, Z("onHide")
			}

			function c(e) {
				clearTimeout(R), R = setTimeout(function() {
					te.position(!0), "orientationchange" == e.type && ($.style.display = "none", $.offsetHeight, $.style.display = "")
				}, 200)
			}

			function d(e) {
				e.target.nodeType && !W.contains(e.target) && W.focus()
			}

			function h(e, t) {
				function a() {
					M.off(Re, a)
						.removeClass("mbsc-anim-in mbsc-anim-trans mbsc-anim-trans-" + F)
						.find(".mbsc-fr-popup")
						.removeClass("mbsc-anim-" + F), i(t)
				}
				if (O) M.appendTo(y);
				else if (ae.is("div") && !te._hasContent) ae.empty()
					.append(M);
				else if (ae.hasClass("mbsc-control")) {
					var r = ae.closest(".mbsc-control-w");
					M.insertAfter(r), r.hasClass("mbsc-select") && r.addClass("mbsc-select-inline")
				} else M.insertAfter(ae);
				P = !0, te._markupInserted(M), Z("onMarkupInserted", {
					target: L
				}), M.on("selectstart mousedown", st)
					.on("click", ".mbsc-fr-btn-e", st)
					.on("keydown", ".mbsc-fr-btn-e", function(e) {
					32 == e.keyCode && (e.preventDefault(), e.stopPropagation(), this.click())
				})
					.on("keydown", function(e) {
					if (32 == e.keyCode) e.preventDefault();
					else if (9 == e.keyCode && O && K.focusTrap) {
						var t = M.find('[tabindex="0"]')
							.filter(function() {
							return this.offsetWidth > 0 || this.offsetHeight > 0
						}),
							a = t.index(Ee(":focus", M)),
							n = t.length - 1,
							s = 0;
						e.shiftKey && (n = 0, s = -1), a === n && (t.eq(s)[0].focus(), e.preventDefault())
					}
				})
					.on("touchstart mousedown pointerdown", ".mbsc-fr-btn-e", n)
					.on("touchend", ".mbsc-fr-btn-e", s), Ee("input,select,textarea", M)
					.on("selectstart mousedown", function(e) {
					e.stopPropagation()
				})
					.on("keydown", function(e) {
					32 == e.keyCode && e.stopPropagation()
				}), L.addEventListener("touchstart", function() {
					X || (X = !0, y.find(".mbsc-no-touch")
						.removeClass("mbsc-no-touch"))
				}, !0), Ee.each(V, function(e, t) {
					te.tap(Ee(".mbsc-fr-btn" + e, M), function(e) {
						t = u(t) ? te.buttons[t] : t, (u(t.handler) ? te.handlers[t.handler] : t.handler)
							.call(this, e, te)
					}, !0)
				}), te._attachEvents(M), te.position(), D.on(J, c), O && (F && !e ? M.addClass("mbsc-anim-in mbsc-anim-trans mbsc-anim-trans-" + F)
					.on(Re, a)
					.find(".mbsc-fr-popup")
					.addClass("mbsc-anim-" + F) : i(t)), Z("onShow", {
					target: L,
					valueText: te._tempValue
				})
			}

			function f(e, t) {
				e && e(), !1 !== te.show() && (Ue = t)
			}

			function b() {
				te._fillValue(), Z("onSet", {
					valueText: te._value
				})
			}

			function g() {
				Z("onCancel", {
					valueText: te._value
				})
			}

			function x() {
				te.setVal(null, !0)
			}
			var T, y, _, w, M, S, C, k, D, N, V, A, I, F, H, O, P, L, E, Y, j, z, W, $, R, J, B, K, q, U, G, X, Z, Q, ee, te = this,
				ae = Ee(e),
				ne = [];
			We.call(this, e, t, !0), te.position = function(e) {
				var t, a, n, s, r, i, o, l, c, d, u, h, f, p, b, v, g, x = {}, T = 0,
					_ = 0,
					w = 0,
					S = 0;
				!B && P && (te._position(M), f = L.offsetHeight, p = L.offsetWidth, Q === p && ee === f && e || (te._isFullScreen || /top|bottom/.test(K.display) ? k.width(p) : O && N.addClass("mbsc-fr-pos")
					.width(""), Ee(".mbsc-comp", M)
					.each(function() {
					var e = he.instances[this.id];
					e && e !== te && e.position && e.position()
				}), !te._isFullScreen && /center|bubble/.test(K.display) && (Ee(".mbsc-w-p", M)
					.each(function() {
					b = this.getBoundingClientRect()
						.width, S += b, w = b > w ? b : w
				}), h = S > p - 16 || !0 === K.tabs, N.removeClass("mbsc-fr-pos")
					.css({
					width: te._isLiquid ? Math.min(K.maxPopupWidth, p - 16) : Math.ceil(h ? w : S),
					"white-space": h ? "" : "nowrap"
				})), !1 !== Z("onPosition", {
					target: L,
					popup: $,
					hasTabs: h,
					windowWidth: p,
					windowHeight: f
				}) && O && (E = $.offsetWidth, Y = $.offsetHeight, U = Y <= f && E <= p, j && (T = D.scrollLeft(), _ = D.scrollTop()), "center" == K.display ? (g = Math.max(0, T + (p - E) / 2), v = Math.max(0, _ + (f - Y) / 2)) : "bubble" == K.display ? (t = void 0 === K.anchor ? ae : Ee(K.anchor), o = Ee(".mbsc-fr-arr-i", M)[0], s = t.offset(), r = s.top + (H ? _ - y.offset()
					.top : 0), i = s.left + (H ? T - y.offset()
					.left : 0), a = t[0].offsetWidth, n = t[0].offsetHeight, l = o.offsetWidth, c = o.offsetHeight, g = m(i - (E - a) / 2, T + 3, T + p - E - 3), v = r - Y - c / 2, v < _ || r > _ + f ? (k.removeClass("mbsc-fr-bubble-top")
					.addClass("mbsc-fr-bubble-bottom"), v = r + n + c / 2) : k.removeClass("mbsc-fr-bubble-bottom")
					.addClass("mbsc-fr-bubble-top"), Ee(".mbsc-fr-arr", M)
					.css({
					left: m(i + a / 2 - (g + (E - l) / 2), 0, l)
				}), U = v > _ && g > T && v + Y <= _ + f && g + E <= T + p) : (g = T, v = "top" == K.display ? _ : Math.max(0, _ + f - Y)), j && (d = Math.max(v + Y, H ? I.scrollHeight : Ee(document)
					.height()), u = Math.max(g + E, H ? I.scrollWidth : Ee(document)
					.width()), C.css({
					width: u,
					height: d
				}), K.scroll && "bubble" == K.display && (v + Y + 8 > _ + f || r > _ + f || r + n < _) && (B = !0, setTimeout(function() {
					B = !1
				}, 300), D.scrollTop(Math.min(r, v + Y - f + 8, d - f)))), x.top = Math.floor(v), x.left = Math.floor(g), k.css(x), Q = p, ee = f)))
			}, te.attachShow = function(e, t) {
				var a, n = Ee(e),
					s = n.prop("readonly");
				if ("inline" !== K.display) {
					if ((K.showOnFocus || K.showOnTap) && n.is("input,select") && (n.prop("readonly", !0)
						.on("mousedown.mbsc", function(e) {
						e.preventDefault()
					})
						.on("focus.mbsc", function() {
						te._isVisible && this.blur()
					}), a = Ee('label[for="' + n.attr("id") + '"]'), a.length || (a = n.closest("label"))), n.is("select")) return;
					K.showOnFocus && n.on("focus.mbsc", function() {
						Ge ? Ge = !1 : f(t, n)
					}), K.showOnTap && (n.on("keydown.mbsc", function(e) {
						32 != e.keyCode && 13 != e.keyCode || (e.preventDefault(), e.stopPropagation(), f(t, n))
					}), te.tap(n, function() {
						f(t, n)
					}), a && a.length && te.tap(a, function() {
						f(t, n)
					})), ne.push({
						readOnly: s,
						el: n,
						lbl: a
					})
				}
			}, te.select = function() {
				O ? te.hide(!1, "set", !1, b) : b()
			}, te.cancel = function() {
				O ? te.hide(!1, "cancel", !1, g) : g()
			}, te.clear = function() {
				te._clearValue(), Z("onClear"), O && te._isVisible && !te.live ? te.hide(!1, "clear", !1, x) : x()
			}, te.enable = function() {
				K.disabled = !1, te._isInput && ae.prop("disabled", !1)
			}, te.disable = function() {
				K.disabled = !0, te._isInput && ae.prop("disabled", !0)
			}, te.show = function(e, t) {
				function html(){
					var a = "";
					if (V.length) {
						var b,
							i,
							j,
							l = V.length;
			
						a += '<div class="mbsc-fr-btn-cont">';
						for (i = 0; i < V.length; i++) {
							j = K.btnReverse ? l - i - 1 : i;
							b = V[j];
							b = u(b) ? te.buttons[b] : b;
			
							if (b.handler === 'set') {
								b.parentClass = 'mbsc-fr-btn-s';
							}
			
							if (b.handler === 'cancel') {
								b.parentClass = 'mbsc-fr-btn-c';
							}
			
							a += '<div' + (K.btnWidth ? ' style="width:' + (100 / V.length) + '%"' : '') +
								' class="mbsc-fr-btn-w ' + (b.parentClass || '') + '">' +
								'<div tabindex="0" role="button" class="mbsc-fr-btn' + j + ' mbsc-fr-btn-e ' +
								(b.cssClass === undefined ? K.btnClass : b.cssClass) +
								(b.icon ? ' mbsc-ic mbsc-ic-' + b.icon : '') + '">' + (b.text || '') + '</div></div>';
						}
						a += '</div>';
					}
					return a;
				}
				var a;
				if (!K.disabled && !te._isVisible) {
					if (te._readValue(), !1 === Z("onBeforeShow")) return !1;
					if (Ue = null, F = K.animate, V = K.buttons || [], j = H || "bubble" == K.display, z = Qe && !j && K.scrollLock, V.length > 0, X = !1, !1 !== F && ("top" == K.display ? F = F || "slidedown" : "bottom" == K.display ? F = F || "slideup" : "center" != K.display && "bubble" != K.display || (F = F || "pop")), O && (G = Math.max(0, D.scrollTop()), q = Math.max(0, D.scrollLeft()), Q = 0, ee = 0, z && !w.hasClass("mbsc-fr-lock-ios") && y.css({
						top: -G + "px",
						left: -q + "px"
					}),
					w.addClass((K.scrollLock ? "mbsc-fr-lock" : "") + (z ? " mbsc-fr-lock-ios" : "") + (H ? " mbsc-fr-lock-ctx" : "")), 
					Ee(document.activeElement).is("input,textarea") && document.activeElement.blur(), 
					he.activeInstance && he.activeInstance.hide(), 
					he.activeInstance = te, 
					I.mbscModals = I.mbscModals || 0, 
					I.mbscLock = I.mbscLock || 0, 
					I.mbscModals++, K.scrollLock && I.mbscLock++), 
					
					a = '<div lang="' + K.lang + '" class="mbsc-fr mbsc-no-touch mbsc-' + K.theme + (K.baseTheme ? ' mbsc-' + K.baseTheme : '') + ' mbsc-fr-' + K.display + ' ' +
						(K.cssClass || '') + ' ' +
						(K.compClass || '') +
						(te._isLiquid ? ' mbsc-fr-liq' : '') +
						(nt ? ' mbsc-fr-hb' : '') +
						(z ? ' mbsc-platform-ios' : '') +
						(V.length ? (V.length >= 3 ? ' mbsc-fr-btn-block ' : '') : ' mbsc-fr-nobtn') + '">' +
						(O ? '<div class="mbsc-fr-persp"><div class="mbsc-fr-overlay"></div><div role="dialog" tabindex="-1" class="mbsc-fr-scroll">' : '') + // Overlay
						'<div class="mbsc-fr-popup' +
						(K.rtl ? ' mbsc-rtl' : ' mbsc-ltr') +
						(K.headerText ? ' mbsc-fr-has-hdr' : '') +
						'">' + // Popup
						(K.display === 'bubble' ? '<div class="mbsc-fr-arr-w"><div class="mbsc-fr-arr-i"><div class="mbsc-fr-arr"></div></div></div>' : '') + // Bubble arrow
						'<div class="mbsc-fr-w">' + // Popup content
						'<div aria-live="assertive" class="mbsc-fr-aria mbsc-fr-hdn"></div>' +
						(K.headerText ? '<div class="mbsc-fr-hdr">' + (u(K.headerText) ? K.headerText : '') + '</div>' : '') + // Header
						'<div class="mbsc-fr-c">', // Wheel group container
					a += te._generateContent(),
					a += '</div>',
					a += html(),
					a += '</div></div></div></div>' + (O ? '</div></div>' : ''),
					M = Ee(a), 
					C = Ee(".mbsc-fr-persp", M), 
					S = Ee(".mbsc-fr-scroll", M), 
					N = Ee(".mbsc-fr-w", M), 
					_ = Ee(".mbsc-fr-hdr", M), 
					k = Ee(".mbsc-fr-popup", M), 
					T = Ee(".mbsc-fr-aria", M), 
					L = M[0], W = S[0], $ = k[0], 
					te._markup = M, 
					te._header = _, 
					te._isVisible = !0, 
					J = "orientationchange resize", 
					te._markupReady(M), Z("onMarkupReady", {
						target: L
					}), O && (Ee(window)
						.on("keydown", r), K.scrollLock && M.on("touchmove mousewheel wheel", function(e) {
						U && e.preventDefault()
					}), K.focusTrap && D.on("focusin", d), K.closeOnOverlayTap)) {
						var n, s, i, o;
						S.on("touchstart mousedown", function(e) {
							s || e.target != S[0] || (s = !0, n = !1, i = v(e, "X"), o = v(e, "Y"))
						})
							.on("touchmove mousemove", function(e) {
							s && !n && (Math.abs(v(e, "X") - i) > 9 || Math.abs(v(e, "Y") - o) > 9) && (n = !0)
						})
							.on("touchcancel", function() {
							s = !1
						})
							.on("touchend touchcancel mouseup", function(e) {
							s && !n && (te.cancel(), "mouseup" != e.type && p()), s = !1
						})
					}
					O && z ? setTimeout(function() {
						h(e, t)
					}, 100) : h(e, t)
				}
			}, te.hide = function(e, t, a, n) {
				function s() {
					M.off(Re, s), l(e)
				}
				if (!te._isVisible || !a && !te._isValid && "set" == t || !a && !1 === Z("onBeforeClose", {
					valueText: te._tempValue,
					button: t
				})) return !1;
				O && (Ee(document.activeElement)
					.is("input,textarea") && $.contains(document.activeElement) && document.activeElement.blur(), Ee(window)
					.off("keydown", r), delete he.activeInstance), M && (O && F && !e ? M.addClass("mbsc-anim-out mbsc-anim-trans mbsc-anim-trans-" + F)
					.on(Re, s)
					.find(".mbsc-fr-popup")
					.addClass("mbsc-anim-" + F) : l(e), te._detachEvents(M), D.off(J, c)
					.off("focusin", d)), n && n(), ae.trigger("blur"), Z("onClose", {
					valueText: te._value
				})
			}, te.ariaMessage = function(e) {
				T.html(""), setTimeout(function() {
					T.html(e)
				}, 100)
			}, te.isVisible = function() {
				return te._isVisible
			}, te.setVal = o, te.getVal = o, te._generateContent = o, te._attachEvents = o, te._detachEvents = o, te._readValue = o, te._clearValue = o, te._fillValue = o, te._markupReady = o, te._markupInserted = o, te._markupRemove = o, te._position = o, te.__processSettings = o, te.__init = o, te.__destroy = o, te._destroy = function() {
				te.hide(!0, !1, !0), ae.off(".mbsc"), Ee.each(ne, function(e, t) {
					t.el.off(".mbsc")
						.prop("readonly", t.readOnly), t.lbl && t.lbl.off(".mbsc")
				}), te.__destroy()
			}, te._processSettings = function() {
				var e, t;
				for (te.__processSettings(), K.buttons = K.buttons || ("inline" !== K.display ? ["cancel", "set"] : []), K.headerText = void 0 === K.headerText ? "inline" !== K.display && "{value}" : K.headerText, V = K.buttons || [], O = "inline" !== K.display, H = "body" != K.context, y = Ee(K.context), w = H ? y : Ee("body,html"), I = y[0], te._$window = D = Ee(H ? K.context : window), te.live = !0, t = 0; t < V.length; t++) "ok" != (e = V[t]) && "set" != e && "set" != e.handler || (te.live = !1);
				te.buttons.set = {
					text: K.setText,
					icon: K.setIcon,
					handler: "set"
				}, te.buttons.cancel = {
					text: K.cancelText,
					icon: K.cancelIcon,
					handler: "cancel"
				}, te.buttons.close = {
					text: K.closeText,
					icon: K.closeIcon,
					handler: "cancel"
				}, te.buttons.clear = {
					text: K.clearText,
					icon: K.clearIcon,
					handler: "clear"
				}, te._isInput = ae.is("input")
			}, te._init = function() {
				te._isVisible && te.hide(!0, !1, !0), ae.off(".mbsc"), te.__init(), te._isLiquid = "liquid" == K.layout, O ? (te._readValue(), te._hasContent || te.attachShow(ae)) : te.show(), ae.on("change.mbsc", function() {
					te._preventChange || te.setVal(ae.val(), !0, !1), te._preventChange = !1
				})
			}, te.buttons = {}, te.handlers = {
				set: te.select,
				cancel: te.cancel,
				clear: te.clear
			}, te._value = null, te._isValid = !0, te._isVisible = !1, K = te.settings, Z = te.trigger, a || te.init(t)
		};
	rt.prototype._defaults = {
		lang: "en",
		setText: "Set",
		selectedText: "{count} selected",
		closeText: "Close",
		cancelText: "Cancel",
		clearText: "Clear",
		context: "body",
		maxPopupWidth: 600,
		disabled: !1,
		closeOnOverlayTap: !0,
		showOnFocus: et || tt,
		showOnTap: !0,
		display: "center",
		scroll: !0,
		scrollLock: !0,
		tap: !0,
		btnClass: "mbsc-fr-btn",
		btnWidth: !0,
		focusTrap: !0,
		focusOnClose: !at
	}, Xe.Frame = rt, Ze.frame.mobiscroll = {
		headerText: !1,
		btnWidth: !1
	}, Ze.scroller.mobiscroll = ze({}, Ze.frame.mobiscroll, {
		rows: 5,
		showLabel: !1,
		selectedLineBorder: 1,
		weekDays: "min",
		checkIcon: "ion-ios7-checkmark-empty",
		btnPlusClass: "mbsc-ic mbsc-ic-arrow-down5",
		btnMinusClass: "mbsc-ic mbsc-ic-arrow-up5",
		btnCalPrevClass: "mbsc-ic mbsc-ic-arrow-left5",
		btnCalNextClass: "mbsc-ic mbsc-ic-arrow-right5"
	}), Ae && Ee(window)
		.on("focus", function() {
		Ue && (Ge = !0)
	});
	var it = "ios" == Ce,
		ot = function(e, t, a) {
			function n(e) {
				G("onStart", {
					domEvent: e
				}), ae.stopProp && e.stopPropagation(), ae.prevDef && e.preventDefault(), ae.readonly || ae.lock && F || C(e, this) && !I && he.Bgcyj && (h && h.removeClass("mbsc-btn-a"), D = !1, F || (h = Ee(e.target)
					.closest(".mbsc-btn-e", this), h.length && !h.hasClass("mbsc-btn-d") && (D = !0, f = setTimeout(function() {
					h.addClass("mbsc-btn-a")
				}, 100))), I = !0, L = !1, H = !1, Q.scrolled = F, R = v(e, "X"), J = v(e, "Y"), w = R, b = 0, g = 0, x = 0, $ = new Date, W = +k(K, X) || 0, F && c(W, it ? 0 : 1), "mousedown" === e.type && Ee(document)
					.on("mousemove", s)
					.on("mouseup", i))
			}

			function s(e) {
				I && (ae.stopProp && e.stopPropagation(), w = v(e, "X"), M = v(e, "Y"), b = w - R, g = M - J, x = X ? g : b, D && (Math.abs(g) > ae.thresholdY || Math.abs(b) > ae.thresholdX) && (clearTimeout(f), h.removeClass("mbsc-btn-a"), D = !1), (Q.scrolled || !H && Math.abs(x) > U) && (L || G("onGestureStart", S), Q.scrolled = L = !0, P || (P = !0, O = He(r))), X || ae.scrollLock ? e.preventDefault() : Q.scrolled ? e.preventDefault() : Math.abs(g) > 7 && (H = !0, Q.scrolled = !0, ne.trigger("touchend")))
			}

			function r() {
				V && (x = m(x, -j * V, j * V)), c(m(W + x, A - _, N + _)), P = !1
			}

			function i(e) {
				if (I) {
					var t, a = new Date - $;
					ae.stopProp && e.stopPropagation(), Oe(O), P = !1, !H && Q.scrolled && (ae.momentum && a < 300 && (t = x / a, x = Math.max(Math.abs(x), t * t / ae.speedUnit) * (x < 0 ? -1 : 1)), l(x)), D && (clearTimeout(f), h.addClass("mbsc-btn-a"), setTimeout(function() {
						h.removeClass("mbsc-btn-a")
					}, 100), H || Q.scrolled || G("onBtnTap", {
						target: h[0],
						domEvent: e
					})), "mouseup" == e.type && Ee(document)
						.off("mousemove", s)
						.off("mouseup", i), I = !1
				}
			}

			function o(e) {
				if (e = e.originalEvent || e, x = X ? e.deltaY || e.wheelDelta || e.detail : e.deltaX, G("onStart", {
					domEvent: e
				}), ae.stopProp && e.stopPropagation(), x && he.Bgcyj) {
					if (e.preventDefault(), e.deltaMode && 1 == e.deltaMode && (x *= 5), x = m(-x, -20, 20), W = Z, ae.readonly || W + x < A || W + x > N) return;
					L || (S = {
						posX: X ? 0 : Z,
						posY: X ? Z : 0,
						originX: X ? 0 : W,
						originY: X ? W : 0,
						direction: x > 0 ? X ? 270 : 360 : X ? 90 : 180
					}, G("onGestureStart", S)), P || (P = !0, O = He(r)), L = !0, clearTimeout(E), E = setTimeout(function() {
						Oe(O), P = !1, L = !1, l(x)
					}, 200)
				}
			}

			function l(e) {
				var t, a, n;
				if (V && (e = m(e, -j * V, j * V)), n = m(Math.round((W + e) / j) * j, A, N), ee = Math.round(n / j), z) {
					if (e < 0) {
						for (t = z.length - 1; t >= 0; t--)
						if (Math.abs(n) + p >= z[t].breakpoint) {
							ee = t, te = 2, n = z[t].snap2;
							break
						}
					} else if (e >= 0) for (t = 0; t < z.length; t++)
					if (Math.abs(n) <= z[t].breakpoint) {
						ee = t, te = 1, n = z[t].snap1;
						break
					}
					n = m(n, A, N)
				}
				a = ae.time || (Z < A || Z > N ? 1e3 : Math.max(1e3, Math.abs(n - Z) * ae.timeUnit)), S.destinationX = X ? 0 : n, S.destinationY = X ? n : 0, S.duration = a, S.transitionTiming = y, G("onGestureEnd", S), c(n, a)
			}

			function c(e, t, a, n) {
				var s = e != Z,
					r = t > 1,
					i = function() {
						clearInterval(Y), clearTimeout(q), F = !1, Z = e, S.posX = X ? 0 : e, S.posY = X ? e : 0, s && G("onMove", S), r && G("onAnimationEnd", S), n && n()
					};
				S = {
					posX: X ? 0 : Z,
					posY: X ? Z : 0,
					originX: X ? 0 : W,
					originY: X ? W : 0,
					direction: e - Z > 0 ? X ? 270 : 360 : X ? 90 : 180
				}, Z = e, r && (S.destinationX = X ? 0 : e, S.destinationY = X ? e : 0, S.duration = t, S.transitionTiming = y, G("onAnimationStart", S)), B[Ke + "Transition"] = t ? Be + "transform " + Math.round(t) + "ms " + y : "", B[Ke + "Transform"] = "translate3d(" + (X ? "0," + e + "px," : e + "px,0,") + "0)", !s && !F || !t || t <= 1 ? i() : t && (F = !a, clearInterval(Y), Y = setInterval(function() {
					var t = +k(K, X) || 0;
					S.posX = X ? 0 : t, S.posY = X ? t : 0, G("onMove", S), Math.abs(t - e) < 2 && i()
				}, 100), clearTimeout(q), q = setTimeout(function() {
					i()
				}, t)), ae.sync && ae.sync(e, t, y)
			}
			var h, f, p, b, g, x, T, y, _, w, M, S, D, N, V, A, I, F, H, O, P, L, E, Y, j, z, W, $, R, J, B, K, q, U, G, X, Z, Q = this,
				ee = 0,
				te = 1,
				ae = t,
				ne = Ee(e);
			We.call(this, e, t, !0), Q.scrolled = !1, Q.scroll = function(t, a, n, s) {
				t = d(t) ? Math.round(t / j) * j : Math.ceil((Ee(t, e)
					.length ? Math.round(K.offset()[T] - Ee(t, e)
					.offset()[T]) : Z) / j) * j, t = m(t, A, N), ee = Math.round(t / j), W = Z, c(t, a, n, s)
			}, Q.refresh = function(e) {
				var t;
				p = void 0 === ae.contSize ? X ? ne.height() : ne.width() : ae.contSize, A = void 0 === ae.minScroll ? Math.min(0, X ? p - K.height() : p - K.width()) : ae.minScroll, N = void 0 === ae.maxScroll ? 0 : ae.maxScroll, z = null, !X && ae.rtl && (t = N, N = -A, A = -t), u(ae.snap) && (z = [], K.find(ae.snap)
					.each(function() {
					var e = X ? this.offsetTop : this.offsetLeft,
						t = X ? this.offsetHeight : this.offsetWidth;
					z.push({
						breakpoint: e + t / 2,
						snap1: -e,
						snap2: p - e - t
					})
				})), j = d(ae.snap) ? ae.snap : 1, V = ae.snap ? ae.maxSnapScroll : 0, y = ae.easing, _ = ae.elastic ? d(ae.snap) ? j : d(ae.elastic) ? ae.elastic : 0 : 0, void 0 === Z && (Z = ae.initialPos, ee = Math.round(Z / j)), e || Q.scroll(ae.snap ? z ? z[ee]["snap" + te] : ee * j : Z)
			}, Q._processSettings = function() {
				X = "Y" == ae.axis, T = X ? "top" : "left", K = ae.moveElement || ne.children()
					.eq(0), B = K[0].style, U = X ? ae.thresholdY : ae.thresholdX
			}, Q._init = function() {
				Q.refresh(), ne.on("touchstart mousedown", n)
					.on("touchmove", s)
					.on("touchend touchcancel", i), ae.mousewheel && ne.on("wheel mousewheel", o), e.addEventListener && e.addEventListener("click", function(e) {
					Q.scrolled && (Q.scrolled = !1, e.stopPropagation(), e.preventDefault())
				}, !0)
			}, Q._destroy = function() {
				clearInterval(Y), ne.off("touchstart mousedown", n)
					.off("touchmove", s)
					.off("touchend touchcancel", i)
					.off("wheel mousewheel", o)
			}, ae = Q.settings, G = Q.trigger, a || Q.init(t)
		};
	ot.prototype = {
		_defaults: {
			speedUnit: .0022,
			timeUnit: 3,
			initialPos: 0,
			axis: "Y",
			thresholdX: 10,
			thresholdY: 5,
			easing: "cubic-bezier(0.190, 1.000, 0.220, 1.000)",
			stopProp: !0,
			momentum: !0,
			mousewheel: !0,
			elastic: !0
		}
	};
	var lt = Ae ? window.CSS : null,
		ct = lt && lt.supports && lt.supports("(transform-style: preserve-3d)"),
		dt = !ct || "wp" == Ce || "android" == Ce;
	he.presetShort("scroller", "Scroller", !1);
	var ut = function(e, t, a) {
		function n(e) {
			var t = +Ee(this)
				.attr("data-index");
			e.stopPropagation(), "mousedown" === e.type && e.preventDefault(), C(e, this) && !T(t) && (A = Ee(this)
				.addClass("mbsc-sc-btn-a"), j = v(e, "X"), z = v(e, "Y"), E = !0, Y = !1, setTimeout(function() {
				b(t, "inc" == A.attr("data-dir") ? 1 : -1)
			}, 100), "mousedown" === e.type && Ee(document)
				.on("mousemove", s)
				.on("mouseup", r))
		}

		function s(e) {
			(Math.abs(j - v(e, "X")) > 7 || Math.abs(z - v(e, "Y")) > 7) && g(!0)
		}

		function r(e) {
			g(), e.preventDefault(), "mouseup" === e.type && Ee(document)
				.off("mousemove", s)
				.off("mouseup", r)
		}

		function i(e) {
			var t, a, n = Ee(this)
				.attr("data-index");
			38 == e.keyCode ? (t = !0, a = -1) : 40 == e.keyCode ? (t = !0, a = 1) : 32 == e.keyCode && (t = !0, c(n, U[n]._$markup.find('.mbsc-sc-itm[data-val="' + W[n] + '"]'))), t && (e.stopPropagation(), e.preventDefault(), a && !E && (E = !0, Y = !1, b(n, a)))
		}

		function o() {
			g()
		}

		function c(e, t) {
			var a = U[e],
				n = t.attr("data-index"),
				s = p(a, n),
				r = Q._tempSelected[e],
				i = d(a.multiple) ? a.multiple : 1 / 0;
			!1 !== K("onItemTap", {
				target: t[0],
				index: e,
				value: s,
				selected: t.hasClass("mbsc-sc-itm-sel")
			}) && (a.multiple && !a._disabled[s] && (void 0 !== r[s] ? (t.removeClass(O)
				.removeAttr("aria-selected"), delete r[s]) : (1 == i && (Q._tempSelected[e] = r = {}, a._$markup.find(".mbsc-sc-itm-sel")
				.removeClass(O)
				.removeAttr("aria-selected")), l(r)
				.length < i && (t.addClass(O)
				.attr("aria-selected", "true"), r[s] = s))), D(a, e, n, Z, !0, !0, a.multiple), !Q.live || a.multiple || !0 !== B.setOnTap && !B.setOnTap[e] || setTimeout(function() {
				Q.select()
			}, 200))
		}

		function u(e, t) {
			return (e._array ? e._map[t] : e.getIndex(t, Q)) || 0
		}

		function m(e, t) {
			var a = e.data;
			if (t >= e.min && t <= e.max) return e._array ? e.circular ? Ee(a)
				.get(t % e._length) : a[t] : Ee.isFunction(a) ? a(t, Q) : ""
		}

		function h(e) {
			return Ee.isPlainObject(e) ? void 0 !== e.value ? e.value : e.display : e
		}

		function f(e) {
			var t = Ee.isPlainObject(e) ? e.display : e;
			return void 0 === t ? "" : t 
		}

		function p(e, t) {
			return h(m(e, t))
		}

		function b(e, t) {
			Y || x(e, t), E && he.Bgcyj && (clearInterval(L), L = setInterval(function() {
				x(e, t)
			}, B.delay))
		}

		function g(e) {
			clearInterval(L), Y = e, E = !1, A && A.removeClass("mbsc-sc-btn-a")
		}

		function x(e, t) {
			var a = U[e];
			D(a, e, a._current + t, Z, 1 == t ? 1 : 2)
		}

		function T(e) {
			return Ee.isArray(B.readonly) ? B.readonly[e] : B.readonly
		}

		function y(e, t, a) {
			var n = e._index - e._batch;
			return e.data = e.data || [], e.key = void 0 !== e.key ? e.key : t, e.label = void 0 !== e.label ? e.label : t, e._map = {}, e._array = Ee.isArray(e.data), e._array && (e._length = e.data.length, Ee.each(e.data, function(t, a) {
				e._map[h(a)] = t
			})), e.circular = void 0 === B.circular ? void 0 === e.circular ? e._array && e._length > B.rows : e.circular : Ee.isArray(B.circular) ? B.circular[t] : B.circular, e.min = e._array ? e.circular ? -1 / 0 : 0 : void 0 === e.min ? -1 / 0 : e.min, e.max = e._array ? e.circular ? 1 / 0 : e._length - 1 : void 0 === e.max ? 1 / 0 : e.max, e._nr = t, e._index = u(e, W[t]), e._disabled = {}, e._batch = 0, e._current = e._index, e._first = e._index - X, e._last = e._index + X, e._offset = e._first, a ? (e._offset -= e._margin / $ + (e._index - n), e._margin += (e._index - n) * $) : e._margin = 0, e._refresh = function(t) {
				var a = -(e.min - e._offset + (e.multiple && !H ? Math.floor(B.rows / 2) : 0)) * $,
					n = Math.min(a, -(e.max - e._offset - (e.multiple && !H ? Math.floor(B.rows / 2) : 0)) * $);
				ze(e._scroller.settings, {
					minScroll: n,
					maxScroll: a
				}), e._scroller.refresh(t)
			}, G[e.key] = e, e
		}

		function _(e, t, a, n, s) {
			var r, i, o, l, c, d, u, p, b = "",
				v = Q._tempSelected[t],
				g = e._disabled || {};
			for (r = a; r <= n; r++) o = m(e, r), c = f(o), l = h(o), i = o && void 0 !== o.cssClass ? o.cssClass : "", d = o && void 0 !== o.label ? o.label : "", u = o && o.invalid, p = void 0 !== l && l == W[t] && !e.multiple, b += '<div role="option" aria-selected="' + !! v[l] + '" class="mbsc-sc-itm ' + (s ? "mbsc-sc-itm-3d " : "") + i + " " + (p ? "mbsc-sc-itm-sel " : "") + (v[l] ? O : "") + (void 0 === l ? " mbsc-sc-itm-ph" : " mbsc-btn-e") + (u ? " mbsc-sc-itm-inv-h mbsc-btn-d" : "") + (g[l] ? " mbsc-sc-itm-inv mbsc-btn-d" : "") + '" data-index="' + r + '" data-val="' + l + '"' + (d ? ' aria-label="' + d + '"' : "") + (p ? ' aria-selected="true"' : "") + ' style="height:' + $ + "px;line-height:" + $ + "px;" + (s ? Be + "transform:rotateX(" + (e._offset - r) * F % 360 + "deg) translateZ(" + $ * B.rows / 2 + "px);" : "") + '">' + (q > 1 ? '<div class="mbsc-sc-itm-ml" style="line-height:' + Math.round($ / q) + "px;font-size:" + Math.round($ / q * .8) + 'px;">' : "") + c + (q > 1 ? "</div>" : "") + "</div>";
			return b
		}

		function w(t) {
			var a = B.headerText;
			return a ? "function" == typeof a ? a.call(e, t) : a.replace(/\{value\}/i, t) : ""
		}

		function M(e, t, a) {
			var n = Math.round(-a / $) + e._offset,
				s = n - e._current,
				r = e._first,
				i = e._last,
				o = r + X - I + 1,
				l = i - X + I;
			s && (e._first += s, e._last += s, e._current = n, s > 0 ? (e._$scroller.append(_(e, t, Math.max(i + 1, r + s), i + s)), Ee(".mbsc-sc-itm", e._$scroller)
				.slice(0, Math.min(s, i - r + 1))
				.remove(), H && (e._$3d.append(_(e, t, Math.max(l + 1, o + s), l + s, !0)), Ee(".mbsc-sc-itm", e._$3d)
				.slice(0, Math.min(s, l - o + 1))
				.attr("class", "mbsc-sc-itm-del"))) : s < 0 && (e._$scroller.prepend(_(e, t, r + s, Math.min(r - 1, i + s))), Ee(".mbsc-sc-itm", e._$scroller)
				.slice(Math.max(s, r - i - 1))
				.remove(), H && (e._$3d.prepend(_(e, t, o + s, Math.min(o - 1, l + s), !0)), Ee(".mbsc-sc-itm", e._$3d)
				.slice(Math.max(s, o - l - 1))
				.attr("class", "mbsc-sc-itm-del"))), e._margin += s * $, e._$scroller.css("margin-top", e._margin + "px"))
		}

		function S(e, t, a, n) {
			var s, r = U[e],
				i = n || r._disabled,
				o = u(r, t),
				l = t,
				c = t,
				d = 0,
				m = 0;
			if (void 0 === t && (t = p(r, o)), !0 === i[t]) {
				for (s = 0; o - d >= r.min && i[l] && s < 100;) s++, d++, l = p(r, o - d);
				for (s = 0; o + m < r.max && i[c] && s < 100;) s++, m++, c = p(r, o + m);
				t = (m < d && m && 2 !== a || !d || o - d < 0 || 1 == a) && !i[c] ? c : l
			}
			return t
		}

		function k(t, a, n, s, r, i) {
			var o, l, c, d, m = Q._isVisible;
			J = !0, d = B.validate.call(e, {
				values: W.slice(0),
				index: a,
				direction: n
			}, Q) || {}, J = !1, d.valid && (Q._tempWheelArray = W = d.valid.slice(0)), i || Ee.each(U, function(e, s) {
				if (m && s._$markup.find(".mbsc-sc-itm-inv")
					.removeClass("mbsc-sc-itm-inv mbsc-btn-d"), s._disabled = {}, d.disabled && d.disabled[e] && Ee.each(d.disabled[e], function(e, t) {
					s._disabled[t] = !0, m && s._$markup.find('.mbsc-sc-itm[data-val="' + t + '"]')
						.addClass("mbsc-sc-itm-inv mbsc-btn-d")
				}), W[e] = s.multiple ? W[e] : S(e, W[e], n), m) {
					if (s.multiple && void 0 !== a || s._$markup.find(".mbsc-sc-itm-sel")
						.removeClass(O)
						.removeAttr("aria-selected"), s.multiple) {
						if (void 0 === a) for (var i in Q._tempSelected[e]) s._$markup.find('.mbsc-sc-itm[data-val="' + i + '"]')
							.addClass(O)
							.attr("aria-selected", "true")
					} else s._$markup.find('.mbsc-sc-itm[data-val="' + W[e] + '"]')
						.addClass("mbsc-sc-itm-sel")
						.attr("aria-selected", "true");
					l = u(s, W[e]), o = l - s._index + s._batch, Math.abs(o) > 2 * X + 1 && (c = o + (2 * X + 1) * (o > 0 ? -1 : 1), s._offset += c, s._margin -= c * $, s._refresh()), s._index = l + s._batch, s._scroller.scroll(-(l - s._offset + s._batch) * $, a === e || void 0 === a ? t : Z, r)
				}
			}), K("onValidated", {
				index: a,
				time: t
			}), Q._tempValue = B.formatValue.call(e, W, Q), m && Q._header.html(w(Q._tempValue)), Q.live && (Q._hasValue = s || Q._hasValue, N(s, s, 0, !0), s && K("onSet", {
				valueText: Q._value
			})), s && K("onChange", {
				valueText: Q._tempValue
			})
		}

		function D(e, t, a, n, s, r, i) {
			var o = p(e, a);
			void 0 !== o && (W[t] = o, e._batch = e._array ? Math.floor(a / e._length) * e._length : 0, setTimeout(function() {
				k(n, t, s, !0, r, i)
			}, 10))
		}

		function N(t, a, n, s, r) {
			if (s ? Q._tempValue = B.formatValue.call(e, Q._tempWheelArray, Q) : k(n), !r) {
				Q._wheelArray = [];
				for (var i = 0; i < W.length; i++) Q._wheelArray[i] = U[i] && U[i].multiple ? Object.keys(Q._tempSelected[i])[0] : W[i];
				Q._value = Q._hasValue ? Q._tempValue : null, Q._selected = ze(!0, {}, Q._tempSelected)
			}
			t && (Q._isInput && ee.val(Q._hasValue ? Q._tempValue : ""), K("onFill", {
				valueText: Q._hasValue ? Q._tempValue : "",
				change: a
			}), a && (Q._preventChange = !0, ee.trigger("change")))
		}
		var V, A, I, F, H, O, P, L, E, Y, j, z, W, $, R, J, B, K, q, U, G, X = 40,
			Z = 1e3,
			Q = this,
			ee = Ee(e);
		rt.call(this, e, t, !0), Q.setVal = Q._setVal = function(t, a, n, s, r) {
			Q._hasValue = null !== t && void 0 !== t, Q._tempWheelArray = W = Ee.isArray(t) ? t.slice(0) : B.parseValue.call(e, t, Q) || [], N(a, void 0 === n ? a : n, r, !1, s)
		}, Q.getVal = Q._getVal = function(e) {
			var t = Q._hasValue || e ? Q[e ? "_tempValue" : "_value"] : null;
			return d(t) ? +t : t
		}, Q.setArrayVal = Q.setVal, Q.getArrayVal = function(e) {
			return e ? Q._tempWheelArray : Q._wheelArray
		}, Q.changeWheel = function(e, t, a) {
			var n, s;
			Ee.each(e, function(e, t) {
				(s = G[e]) && (n = s._nr, ze(s, t), y(s, n, !0), Q._isVisible && (H && s._$3d.html(_(s, n, s._first + X - I + 1, s._last - X + I, !0)), s._$scroller.html(_(s, n, s._first, s._last))
					.css("margin-top", s._margin + "px"), s._refresh(J)))
			}), !Q._isVisible || Q._isLiquid || J || Q.position(), J || k(t, void 0, void 0, a)
		}, Q.getValidValue = S, Q._generateContent = function() {
			var e, t = 0,
				a = "",
				n = H ? Be + "transform: translateZ(" + ($ * B.rows / 2 + 3) + "px);" : "",
				s = '<div class="mbsc-sc-whl-l" style="' + n + "height:" + $ + "px;margin-top:-" + ($ / 2 + (B.selectedLineBorder || 0)) + 'px;"></div>',
				r = 0;
			return Ee.each(B.wheels, function(i, o) {
				a += '<div class="mbsc-w-p mbsc-sc-whl-gr-c' + (H ? " mbsc-sc-whl-gr-3d-c" : "") + (B.showLabel ? " mbsc-sc-lbl-v" : "") + '">' + s + '<div class="mbsc-sc-whl-gr' + (H ? " mbsc-sc-whl-gr-3d" : "") + (P ? " mbsc-sc-cp" : "") + (B.width || B.maxWidth ? '"' : '" style="max-width:' + B.maxPopupWidth + 'px;"') + ">", Ee.each(o, function(i, o) {
					Q._tempSelected[r] = ze({}, Q._selected[r]), U[r] = y(o, r), t += B.maxWidth ? B.maxWidth[r] || B.maxWidth : B.width ? B.width[r] || B.width : 0, e = void 0 !== o.label ? o.label : i, a += '<div class="mbsc-sc-whl-w ' + (o.cssClass || "") + (o.multiple ? " mbsc-sc-whl-multi" : "") + '" style="' + (B.width ? "width:" + (B.width[r] || B.width) + "px;" : (B.minWidth ? "min-width:" + (B.minWidth[r] || B.minWidth) + "px;" : "") + (B.maxWidth ? "max-width:" + (B.maxWidth[r] || B.maxWidth) + "px;" : "")) + '"><div class="mbsc-sc-whl-o" style="' + n + '"></div>' + s + '<div tabindex="0" aria-live="off" aria-label="' + e + '"' + (o.multiple ? ' aria-multiselectable="true"' : "") + ' role="listbox" data-index="' + r + '" class="mbsc-sc-whl" style="height:' + B.rows * $ * (H ? 1.1 : 1) + 'px;">' + (P ? '<div data-index="' + r + '" data-dir="inc" class="mbsc-sc-btn mbsc-sc-btn-plus ' + (B.btnPlusClass || "") + '" style="height:' + $ + "px;line-height:" + $ + 'px;"></div><div data-index="' + r + '" data-dir="dec" class="mbsc-sc-btn mbsc-sc-btn-minus ' + (B.btnMinusClass || "") + '" style="height:' + $ + "px;line-height:" + $ + 'px;"></div>' : "") + '<div class="mbsc-sc-lbl">' + e + '</div><div class="mbsc-sc-whl-c" style="height:' + R + "px;margin-top:-" + (R / 2 + 1) + "px;" + n + '"><div class="mbsc-sc-whl-sc" style="top:' + (R - $) / 2 + 'px;">', a += _(o, r, o._first, o._last) + "</div></div>", H && (a += '<div class="mbsc-sc-whl-3d" style="height:' + $ + "px;margin-top:-" + $ / 2 + 'px;">', a += _(o, r, o._first + X - I + 1, o._last - X + I, !0), a += "</div>"), a += "</div></div>", r++
				}), a += "</div></div>"
			}), t && (B.maxPopupWidth = t), a
		}, Q._attachEvents = function(e) {
			Ee(".mbsc-sc-btn", e)
				.on("touchstart mousedown", n)
				.on("touchmove", s)
				.on("touchend touchcancel", r), Ee(".mbsc-sc-whl", e)
				.on("keydown", i)
				.on("keyup", o)
		}, Q._detachEvents = function() {
			for (var e = 0; e < U.length; e++) U[e]._scroller.destroy()
		}, Q._markupReady = function(e) {
			V = e, Ee(".mbsc-sc-whl-w", V)
				.each(function(e) {
				var t, a = Ee(this),
					n = U[e],
					s = -(n.min - n._offset + (n.multiple && !H ? Math.floor(B.rows / 2) : 0)) * $,
					r = Math.min(s, -(n.max - n._offset - (n.multiple && !H ? Math.floor(B.rows / 2) : 0)) * $);
				n._$markup = a, n._$scroller = Ee(".mbsc-sc-whl-sc", this), n._$3d = Ee(".mbsc-sc-whl-3d", this), n._scroller = new ot(this, {
					mousewheel: B.mousewheel,
					moveElement: n._$scroller,
					initialPos: (n._first - n._index) * $,
					contSize: 0,
					snap: $,
					minScroll: r,
					maxScroll: s,
					maxSnapScroll: X,
					prevDef: !0,
					stopProp: !0,
					timeUnit: 3,
					easing: "cubic-bezier(0.190, 1.000, 0.220, 1.000)",
					sync: function(e, t, a) {
						H && (n._$3d[0].style[Ke + "Transition"] = t ? Be + "transform " + Math.round(t) + "ms " + a : "", n._$3d[0].style[Ke + "Transform"] = "rotateX(" + -e / $ * F + "deg)")
					},
					onStart: function(t, a) {
						a.settings.readonly = T(e)
					},
					onGestureStart: function() {
						a.addClass("mbsc-sc-whl-a mbsc-sc-whl-anim"), K("onWheelGestureStart", {
							index: e
						})
					},
					onGestureEnd: function(a) {
						var s = 90 == a.direction ? 1 : 2,
							r = a.duration,
							i = a.destinationY;
						t = Math.round(-i / $) + n._offset, D(n, e, t, r, s)
					},
					onAnimationStart: function() {
						a.addClass("mbsc-sc-whl-anim")
					},
					onAnimationEnd: function() {
						a.removeClass("mbsc-sc-whl-a mbsc-sc-whl-anim"), K("onWheelAnimationEnd", {
							index: e
						}), n._$3d.find(".mbsc-sc-itm-del")
							.remove()
					},
					onMove: function(t) {
						M(n, e, t.posY)
					},
					onBtnTap: function(t) {
						c(e, Ee(t.target))
					}
				})
			}), k()
		}, Q._fillValue = function() {
			Q._hasValue = !0, N(!0, !0, 0, !0)
		}, Q._clearValue = function() {
			Ee(".mbsc-sc-whl-multi .mbsc-sc-itm-sel", V)
				.removeClass(O)
				.removeAttr("aria-selected")
		}, Q._readValue = function() {
			var t = ee.val() || "",
				a = 0;
			"" !== t && (Q._hasValue = !0), Q._tempWheelArray = W = Q._hasValue && Q._wheelArray ? Q._wheelArray.slice(0) : B.parseValue.call(e, t, Q) || [], Q._tempSelected = ze(!0, {}, Q._selected), Ee.each(B.wheels, function(e, t) {
				Ee.each(t, function(e, t) {
					U[a] = y(t, a), a++
				})
			}), N(!1, !1, 0, !0), K("onRead")
		}, Q.__processSettings = function() {
			B = Q.settings, K = Q.trigger, q = B.multiline, O = "mbsc-sc-itm-sel mbsc-ic mbsc-ic-" + B.checkIcon, U = [], G = {}
		}, Q.__init = function() {
			P = B.showScrollArrows, H = B.scroll3d && !dt && !P, $ = B.height, R = H ? 2 * Math.round(($ - .03 * ($ * B.rows / 2 + 3)) / 2) : $, I = Math.round(1.8 * B.rows), F = 360 / (2 * I), P && (B.rows = Math.max(3, B.rows)), B.cssClass = (B.cssClass || "") + " mbsc-sc"
		}, Q._getItemValue = h, Q._tempSelected = {}, Q._selected = {}, a || Q.init(t)
	};
	ut.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_hasPreset: !0,
		_class: "scroller",
		_defaults: ze({}, rt.prototype._defaults, {
			minWidth: 80,
			height: 40,
			rows: 3,
			multiline: 1,
			delay: 300,
			readonly: !1,
			showLabel: !0,
			setOnTap: !1,
			wheels: [],
			preset: "",
			speedUnit: .0012,
			timeUnit: .08,
			checkIcon: "checkmark",
			validate: function() {},
			formatValue: function(e) {
				return e.join(" ")
			},
			parseValue: function(e, t) {
				var a, n, s = [],
					r = [],
					i = 0;
				return null !== e && void 0 !== e && (s = (e + "")
					.split(" ")), Ee.each(t.settings.wheels, function(e, o) {
					Ee.each(o, function(e, o) {
						n = o.data, a = t._getItemValue(n[0]), Ee.each(n, function(e, n) {
							if (s[i] == t._getItemValue(n)) return a = t._getItemValue(n), !1
						}), r.push(a), i++
					})
				}), r
			}
		})
	}, he.classes.Scroller = ut;
	var mt = {
		separator: " ",
		dateFormat: "mm/dd/yy",
		dateDisplay: "MMddyy",
		timeFormat: "h:ii A",
		dayText: "Day",
		monthText: "Month",
		yearText: "Year",
		hourText: "Hours",
		minuteText: "Minutes",
		ampmText: "&nbsp;",
		secText: "Seconds",
		nowText: "Now",
		todayText: "Today"
	}, ht = function(e) {
		function t(e) {
			return e < 10 ? "0" + e : e
		}

		function a(e) {
			var t, a, n, s = [];
			if (e) {
				for (t = 0; t < e.length; t++)
				if (a = e[t], a.start && a.start.getTime) for (n = new Date(a.start); n <= a.end;) s.push(_(n.getFullYear(), n.getMonth(), n.getDate())), n.setDate(n.getDate() + 1);
				else s.push(a);
				return s
			}
			return e
		}

		function n(e, t, a, n) {
			return Math.min(n, Math.floor(e / t) * t + a)
		}

		function s(e, t, a) {
			return Math.floor((a - t) / e) * e + t
		}

		function r(e) {
			return O.getYear(e)
		}

		function i(e) {
			return O.getMonth(e)
		}

		function o(e) {
			return O.getDay(e)
		}

		function l(e) {
			var t = e.getHours();
			return t = q && t >= 12 ? t - 12 : t, n(t, X, te, se)
		}

		function c(e) {
			return n(e.getMinutes(), Z, ae, re)
		}

		function d(e) {
			return n(e.getSeconds(), Q, ne, ie)
		}

		function u(e) {
			return e.getMilliseconds()
		}

		function m(e) {
			return e.getHours() > 11 ? 1 : 0
		}

		function h(e) {
			return e.getFullYear() + "-" + t(e.getMonth() + 1) + "-" + t(e.getDate())
		}

		function f(e) {
			return n(Math.round((e.getTime() - new Date(e)
				.setHours(0, 0, 0, 0)) / 1e3), k, 0, 86400)
		}

		function p(e, t, a, n) {
			var s;
			return void 0 === V[t] || (s = +e[V[t]], isNaN(s)) ? a ? ue[t](a) : void 0 !== A[t] ? A[t] : ue[t](n) : s
		}

		function b(e) {
			var t, a = new Date((new Date)
				.setHours(0, 0, 0, 0));
			if (null === e) return e;
			void 0 !== V.dd && (t = e[V.dd].split("-"), t = new Date(t[0], t[1] - 1, t[2])), void 0 !== V.tt && (t = t || a, t = new Date(t.getTime() + e[V.tt] % 86400 * 1e3));
			var n = p(e, "y", t, a),
				s = p(e, "m", t, a),
				r = Math.min(p(e, "d", t, a), O.getMaxDayOfMonth(n, s)),
				i = p(e, "h", t, a);
			return O.getDate(n, s, r, q && p(e, "a", t, a) ? i + 12 : i, p(e, "i", t, a), p(e, "s", t, a), p(e, "u", t, a))
		}

		function v(e, t) {
			var a, n, s = ["y", "m", "d", "a", "h", "i", "s", "u", "dd", "tt"],
				r = [];
			if (null === e || void 0 === e) return e;
			for (a = 0; a < s.length; a++) n = s[a], void 0 !== V[n] && (r[V[n]] = ue[n](e)), t && (A[n] = ue[n](e));
			return r
		}

		function g(e, t) {
			return t ? Math.floor(new Date(e) / 864e5) : e.getMonth() + 12 * (e.getFullYear() - 1970)
		}

		function x(e, t) {
			var a, n, s = !1,
				r = !1,
				i = 0,
				o = 0,
				l = J ? b(v(J)) : -1 / 0,
				c = B ? b(v(B)) : 1 / 0;
			if (T(e)) return e;
			if (e < l && (e = l), e > c && (e = c), a = e, n = e, 2 !== t) for (s = T(a, !0); !s && a < c;) a = new Date(a.getTime() + 864e5), s = T(a, !0), i++;
			if (1 !== t) for (r = T(n, !0); !r && n > l;) n = new Date(n.getTime() - 864e5), r = T(n, !0), o++;
			return 1 === t && s ? a : 2 === t && r ? n : o <= i && r ? n : a
		}

		function T(e, t) {
			return !(!t && e < J) && (!(!t && e > B) && ( !! y(e, L) || !y(e, P)))
		}

		function y(e, t) {
			var a, n, s;
			if (t) for (n = 0; n < t.length; n++)
			if (a = t[n], s = a + "", !a.start) if (a.getTime) {
				if (e.getFullYear() == a.getFullYear() && e.getMonth() == a.getMonth() && e.getDate() == a.getDate()) return !0
			} else if (s.match(/w/i)) {
				if ((s = +s.replace("w", "")) == e.getDay()) return !0
			} else if (s = s.split("/"), s[1]) {
				if (s[0] - 1 == e.getMonth() && s[1] == e.getDate()) return !0
			} else if (s[0] == e.getDate()) return !0;
			return !1
		}

		function S(e, t, a, n, s, r, i) {
			var o, l, c, d;
			if (e) for (l = 0; l < e.length; l++)
			if (o = e[l], d = o + "", !o.start) if (o.getTime) O.getYear(o) == t && O.getMonth(o) == a && (r[O.getDay(o)] = i);
			else if (d.match(/w/i)) for (d = +d.replace("w", ""), c = d - n; c < s; c += 7) c >= 0 && (r[c + 1] = i);
			else d = d.split("/"), d[1] ? d[0] - 1 == a && (r[d[1]] = i) : r[d[0]] = i
		}

		function C(e, t, a, s, r, i, o, l) {
			var c, d, u, m, h, f, p, b, v, g, x, T, y, _, w, M, S, C, D, N, V = {}, A = O.getDate(s, r, i),
				F = ["a", "h", "i", "s"];
			if (e) {
				for (p = 0; p < e.length; p++) x = e[p], x.start && (x.apply = !1, u = x.d, S = u + "", C = S.split("/"), u && (u.getTime && s == O.getYear(u) && r == O.getMonth(u) && i == O.getDay(u) || !S.match(/w/i) && (C[1] && i == C[1] && r == C[0] - 1 || !C[1] && i == C[0]) || S.match(/w/i) && A.getDay() == +S.replace("w", "")) && (x.apply = !0, V[A] = !0));
				for (p = 0; p < e.length; p++)
				if (x = e[p], c = 0, M = 0, b = oe[a], v = le[a], _ = !0, w = !0, d = !1, x.start && (x.apply || !x.d && !V[A])) {
					for (T = x.start.split(":"), y = x.end.split(":"), g = 0; g < 3; g++) void 0 === T[g] && (T[g] = 0), void 0 === y[g] && (y[g] = 59), T[g] = +T[g], y[g] = +y[g];
					if ("tt" == a) b = n(Math.round((new Date(A)
						.setHours(T[0], T[1], T[2]) - new Date(A)
						.setHours(0, 0, 0, 0)) / 1e3), k, 0, 86400), v = n(Math.round((new Date(A)
						.setHours(y[0], y[1], y[2]) - new Date(A)
						.setHours(0, 0, 0, 0)) / 1e3), k, 0, 86400);
					else {
						for (T.unshift(T[0] > 11 ? 1 : 0), y.unshift(y[0] > 11 ? 1 : 0), q && (T[1] >= 12 && (T[1] = T[1] - 12), y[1] >= 12 && (y[1] = y[1] - 12)), g = 0; g < t; g++) void 0 !== I[g] && (D = n(T[g], ce[F[g]], oe[F[g]], le[F[g]]), N = n(y[g], ce[F[g]], oe[F[g]], le[F[g]]), m = 0, h = 0, f = 0, q && 1 == g && (m = T[0] ? 12 : 0, h = y[0] ? 12 : 0, f = I[0] ? 12 : 0), _ || (D = 0), w || (N = le[F[g]]), (_ || w) && D + m < I[g] + f && I[g] + f < N + h && (d = !0), I[g] != D && (_ = !1), I[g] != N && (w = !1));
						if (!l) for (g = t + 1; g < 4; g++) T[g] > 0 && (c = ce[a]), y[g] < le[F[g]] && (M = ce[a]);
						d || (D = n(T[t], ce[a], oe[a], le[a]) + c, N = n(y[t], ce[a], oe[a], le[a]) - M, _ && (b = D), w && (v = N))
					}
					if (_ || w || d) for (g = b; g <= v; g += ce[a]) o[g] = !l
				}
			}
		}
		
		//以下是破解部分
		
		function ai(a) {
			return {
				value: a,
				display: (/yy/i.test(W) ? a : (a + '').substr(2, 2)) + (O.yearSuffix || '')
			};
		}

		function ad(a) {
			return a;
		}
		
		
		function ak(b) {
			var a = /d/i.test(b);
			var w = he.util.datetime;
			var options = {
				label: '',
				cssClass: 'mbsc-dt-whl-date',
				data: function(e) {
					var g = new Date(new Date().setHours(0, 0, 0, 0)),
						d = a ? new Date(e * 8.64e7) : new Date(1970, e, 1);
					if (a) {
						d = new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
					}
					return {
						invalid: a && !T(d, true),
						value: h(d),
						display: g.getTime() == d.getTime() ? O.todayText : w.formatDate(b, d, O)
					};
				},
				getIndex: function(b) {
					return g(b, a);
				}
			};
			
			if(typeof(J)!="undefined"){
				options.min = g(h(J), a);
			}
			
			if(typeof(B)!="undefined"){
				options.max = g(h(B), a);
			}
			
			return options;
		}
		
		function ab(d) {
			var a, b, g, e = [];
			if (/s/i.test(d)) {
				b = Q;
			} else if (/i/i.test(d)) {
				b = Z * 60;
			} else if (/h/i.test(d)) {
				b = X * 3600;
			}
			k = ce.tt = b;
			for (a = 0; a < 86400; a += b) {
				g = new Date(new Date().setHours(0, 0, 0, 0) + a * 1000);
				e.push({
					value: a,
					display: c.formatDate(d, g, O)
				});
			}
			return {
				label: '',
				cssClass: 'mbsc-dt-whl-time',
				data: e
			};
		}

		function a6() {
			
                var p, s, c, l, b, g, e, n, d = 0,
                    o = [],
                    m = [],
                    i = [];
                if (E.match(/date/i)) {
                    p = W.split(/\|/.test(W) ? '|' : '');
                    for (l = 0; l < p.length; l++) {
                        c = p[l];
                        g = 0;
                        if (c.length) {
                            if (/y/i.test(c)) {
                                g++;
                            }
                            if (/m/i.test(c)) {
                                g++;
                            }
                            if (/d/i.test(c)) {
                                g++;
                            }
							if (g > 1 && V.dd === undefined) {
								console.log(c)
                                V.dd = d;
                                d++;
                                m.push(ak(c));
                                i = m;
                                D = true;
                            }
						   	else if (/y/i.test(c) && V.y === undefined) {
                                V.y = d;
                                d++;
                                m.push({
                                    cssClass: 'mbsc-dt-whl-y',
                                    label: O.yearText,
                                    min: J,
                                    max: B,
                                    data: ai,
                                    getIndex: ad
                                });
                            }
							else if (/m/i.test(c) && V.m === undefined) {
								
                                V.m = d;
                                e = [];
                                d++;
			
                                for (b = 0; b < 12; b++) {
                                    n = W.replace(/[dy]/gi, '').replace(/mm/, t(b + 1) + (O.monthSuffix || '')).replace(/m/, b + 1 + (O.monthSuffix || ''));
                                    e.push({
                                        value: b,
                                        display: /MM/.test(n) ? n.replace(/MM/, '<span class="mbsc-dt-month">' + O.monthNames[b] + '</span>') : n.replace(/M/, '<span class="mbsc-dt-month">' + O.monthNamesShort[b] + '</span>')
                                    });
                                }
                                
                                m.push({
                                    cssClass: 'mbsc-dt-whl-m',
                                    label: O.monthText,
                                    data: e
                                });
								
								
                            } 
							else if (/d/i.test(c) && V.d === undefined) {
								
                                V.d = d;
                                e = [];
                                d++;
								
                                for (b = 1; b < 32; b++) {
                                    e.push({
                                        value: b,
                                        display: (/dd/i.test(O) ? t(b) : b) + (O.daySuffix || '')
                                    });
                                }
		
                                m.push({
                                    cssClass: 'mbsc-dt-whl-d',
                                    label: O.dayText,
                                    data: e
                                });
								
								
                            }   
                        }
                    }
                    o.push(m);
				}
				
				
				if (E.match(/time/i)) {
					s = z.split(/\|/.test(z) ? '|' : '');
					for (l = 0; l < s.length; l++) {
						c = s[l];
						g = 0;
						if (c.length) {
							if (/h/i.test(c)) {
								g++;
							}
							if (/i/i.test(c)) {
								g++;
							}
							if (/s/i.test(c)) {
								g++;
							}
							if (/a/i.test(c)) {
								g++;
							}
						}
						
						if (g > 1 && V.tt === undefined) {
							V.tt = d;
							d++;
							i.push(ab(c));
						}
						else if (/h/i.test(c) && V.h === undefined) {
							e = [];
							V.h = d;
							d++;
							for (b = te; b < (q ? 12 : 24); b += X) {
								e.push({
									value: b,
									display: q && b === 0 ? 12 : /hh/i.test($) ? t(b) : b
								});
							}
							i.push({
								cssClass: 'mbsc-dt-whl-h',
								label: O.hourText,
								data: e
							});
						} 
						
						else if (/i/i.test(c) && V.i === undefined) {
							e = [];
							V.i = d;
							d++;
							for (b = ae; b < 60; b += Z) {
								e.push({
									value: b,
									display: /ii/i.test($) ? t(b) : b
								});
							}
							i.push({
								cssClass: 'mbsc-dt-whl-i',
								label: O.minuteText,
								data: e
							});
						}
						
						else if (/s/i.test(c) && V.s === undefined) {
							e = [];
							V.s = d;
							d++;
							for (b = ne; b < 60; b += Q) {
								e.push({
									value: b,
									display: /ss/i.test($) ? t(b) : b
								});
							}
							i.push({
								cssClass: 'mbsc-dt-whl-s',
								label: O.secText,
								data: e
							});
						}
						else if (/a/i.test(c) && V.a === undefined) {
							V.a = d;
							d++;
							i.push({
								cssClass: 'mbsc-dt-whl-a',
								label: O.ampmText,
								data: /A/.test(c) ? [{
									value: 0,
									display: O.amText.toUpperCase()
								}, {
									value: 1,
									display: O.pmText.toUpperCase()
								}] : [{
									value: 0,
									display: O.amText
								}, {
									value: 1,
									display: O.pmText
								}]
							});
						}
	
					}
					
					 if (i != m) {
						o.push(i);
					}
					
				}
				
			return o;
		}
		
		
		
		var k, D, N, V = {}, A = {}, I = [],
			F = function(e) {
				var t, a, n, s = {};
				if (e.is("input")) {
					switch (e.attr("type")) {
						case "date":
							t = "yy-mm-dd";
							break;
						case "datetime":
							t = "yy-mm-ddTHH:ii:ssZ";
							break;
						case "datetime-local":
							t = "yy-mm-ddTHH:ii:ss";
							break;
						case "month":
							t = "yy-mm", s.dateOrder = "mmyy";
							break;
						case "time":
							t = "HH:ii:ss"
					}
					s.format = t, a = e.attr("min"), n = e.attr("max"), a && "undefined" != a && (s.min = M(t, a)), n && "undefined" != n && (s.max = M(t, n))
				}
				return s
			}(Ee(this)),
			H = ze({}, e.settings),
			O = ze(e.settings, $e, mt, F, H),
			P = a(O.invalid),
			L = a(O.valid),
			E = O.preset,
			Y = "datetime" == E ? O.dateFormat + O.separator + O.timeFormat : "time" == E ? O.timeFormat : O.dateFormat,
			j = F.format || Y,
			z = (O.dateWheels || O.dateFormat, O.timeWheels || O.timeFormat),
			W = O.dateWheels || O.dateDisplay,
			$ = z,
			R = O.baseTheme || O.theme,
			J = O.min,
			B = O.max,
			K = /time/i.test(E),
			q = /h/.test($),
			U = /D/.test(W),
			G = O.steps || {}, 
			X = G.hour || O.stepHour || 1,
			Z = G.minute || O.stepMinute || 1,
			Q = G.second || O.stepSecond || 1,
			ee = G.zeroBased,
			te = ee || !J ? 0 : J.getHours() % X,
			ae = ee || !J ? 0 : J.getMinutes() % Z,
			ne = ee || !J ? 0 : J.getSeconds() % Q,
			se = s(X, te, q ? 11 : 23),
			re = s(Z, ae, 59),
			ie = s(Z, ae, 59),
			oe = {
				y: J ? J.getFullYear() : -1 / 0,
				m: 0,
				d: 1,
				h: te,
				i: ae,
				s: ne,
				a: 0,
				tt: 0
			}, le = {
				y: B ? B.getFullYear() : 1 / 0,
				m: 11,
				d: 31,
				h: se,
				i: re,
				s: ie,
				a: 1,
				tt: 86400
			}, ce = {
				y: 1,
				m: 1,
				d: 1,
				h: X,
				i: Z,
				s: Q,
				a: 1,
				tt: 1
			}, de = {
				bootstrap: 46,
				ios: 50,
				material: 46,
				mobiscroll: 46,
				wp: 50
			}, ue = {
				y: r,
				m: i,
				d: o,
				h: l,
				i: c,
				s: d,
				u: u,
				a: m,
				dd: h,
				tt: f
			};
		return e.getDate = e.getVal = function(t) {
			return e._hasValue || t ? b(e.getArrayVal(t)) : null
		}, e.setDate = function(t, a, n, s, r) {
			e.setArrayVal(v(t), a, r, s, n)
		},
		N = a6(),
		O.dateDisplay = W,
		e._format = Y,
		e._order = V,
		e.handlers.now = function() {
			e.setDate(new Date, e.live, 1e3, !0, !0)
		}, e.buttons.now = {
			text: O.nowText,
			icon: O.nowIcon,
			handler: "now"
		}, {
			minWidth: D && K ? de[R] : void 0,
			compClass: "mbsc-dt",
			wheels: N,
			headerText: !! O.headerText && function() {
				return w(Y, b(e.getArrayVal(!0)), O)
			},
			formatValue: function(e) {
				return w(j, b(e), O)
			},
			parseValue: function(e) {
				return e || (A = {}), v(e ? M(j, e, O) : O.defaultValue && O.defaultValue.getTime ? O.defaultValue : new Date, !! e && !! e.getTime)
			},
			validate: function(t) {
				var a, n, s, r, i = t.values,
					o = t.index,
					l = t.direction,
					c = O.wheels[0][V.d],
					d = x(b(i), l),
					u = v(d),
					m = [],
					h = {}, f = ue.y(d),
					p = ue.m(d),
					g = O.getMaxDayOfMonth(f, p),
					T = !0,
					y = !0;
				if (Ee.each(["dd", "y", "m", "d", "tt", "a", "h", "i", "s"], function(e, t) {
					if (void 0 !== V[t]) {
						var a = oe[t],
							s = le[t],
							r = ue[t](d);
						if (m[V[t]] = [], T && J && (a = ue[t](J)), y && B && (s = ue[t](B)), "y" != t && "dd" != t) for (n = oe[t]; n <= le[t]; n += ce[t])(n < a || n > s) && m[V[t]].push(n);
						if (r < a && (r = a), r > s && (r = s), T && (T = r == a), y && (y = r == s), "d" == t) {
							var i = O.getDate(f, p, 1)
								.getDay(),
								o = {};
							S(P, f, p, i, g, o, 1), S(L, f, p, i, g, o, 0), Ee.each(o, function(e, a) {
								a && m[V[t]].push(e)
							})
						}
					}
				}), K && Ee.each(["a", "h", "i", "s", "tt"], function(t, a) {
					var n = ue[a](d),
						s = ue.d(d),
						r = {};
					void 0 !== V[a] && (C(P, t, a, f, p, s, r, 0), C(L, t, a, f, p, s, r, 1), Ee.each(r, function(e, t) {
						t && m[V[a]].push(e)
					}), I[t] = e.getValidValue(V[a], n, l, r))
				}), c && (c._length !== g || U && (void 0 === o || o === V.y || o === V.m))) {
					for (h[V.d] = c, c.data = [], a = 1; a <= g; a++) r = O.getDate(f, p, a)
						.getDay(), s = W.replace(/[my]/gi, "")
						.replace(/dd/, (a < 10 ? "0" + a : a) + (O.daySuffix || ""))
						.replace(/d/, a + (O.daySuffix || "")), c.data.push({
						value: a,
						display: s.match(/DD/) ? s.replace(/DD/, '<span class="mbsc-dt-day">' + O.dayNames[r] + "</span>") : s.replace(/D/, '<span class="mbsc-dt-day">' + O.dayNamesShort[r] + "</span>")
					});
					e._tempWheelArray[V.d] = u[V.d], e.changeWheel(h)
				}
				return {
					disabled: m,
					valid: u
				}
			}
		}
	};
	Ee.each(["date", "time", "datetime"], function(e, t) {
		he.presets.scroller[t] = ht
	});
	var ft = {
		controls: ["calendar"],
		firstDay: 0,
		weekDays: "short",
		maxMonthWidth: 170,
		months: 1,
		pageBuffer: 1,
		weeks: 6,
		highlight: !0,
		outerMonthChange: !0,
		quickNav: !0,
		yearChange: !0,
		tabs: "auto",
		todayClass: "mbsc-cal-today",
		btnCalPrevClass: "mbsc-ic mbsc-ic-arrow-left6",
		btnCalNextClass: "mbsc-ic mbsc-ic-arrow-right6",
		dateText: "Date",
		timeText: "Time",
		calendarText: "Calendar",
		todayText: "Today",
		prevMonthText: "Previous Month",
		nextMonthText: "Next Month",
		prevYearText: "Previous Year",
		nextYearText: "Next Year"
	}, pt = function(e) {
		function t(t) {
			t.hasClass("mbsc-cal-h") && (t.removeClass("mbsc-cal-h"), e._onSelectShow())
		}

		function a(e) {
			e.hasClass("mbsc-cal-h") || e.addClass("mbsc-cal-h")
		}

		function n(e) {
			e.hasClass("mbsc-cal-h") ? t(e) : a(e)
		}

		function s(e, t, a) {
			var n, s, r, i, o, l = {}, c = Fe + He;
			return e && Ee.each(e, function(e, d) {
				if (n = d.d || d.start || d, r = n + "", d.start && d.end) for (i = new Date(d.start); i <= d.end;) o = _(i.getFullYear(), i.getMonth(), i.getDate()), l[o] = l[o] || [], l[o].push(d), i.setDate(i.getDate() + 1);
				else if (n.getTime) o = _(n.getFullYear(), n.getMonth(), n.getDate()), l[o] = l[o] || [], l[o].push(d);
				else if (r.match(/w/i)) {
					var u = +r.replace("w", ""),
						m = 0,
						h = je.getDate(t, a - Fe - Pe, 1)
							.getDay();
					for (je.firstDay - h + 1 > 1 && (m = 7), s = 0; s < 5 * Le; s++) o = je.getDate(t, a - Fe - Pe, 7 * s - m - h + 1 + u), l[o] = l[o] || [], l[o].push(d)
				} else if (r = r.split("/"), r[1]) a + c >= 11 && (o = je.getDate(t + 1, r[0] - 1, r[1]), l[o] = l[o] || [], l[o].push(d)), a - c <= 1 && (o = je.getDate(t - 1, r[0] - 1, r[1]), l[o] = l[o] || [], l[o].push(d)), o = je.getDate(t, r[0] - 1, r[1]), l[o] = l[o] || [], l[o].push(d);
				else
 for (s = 0; s < Le; s++) o = je.getDate(t, a - Fe - Pe + s, r[0]), je.getDay(o) == r[0] && (l[o] = l[o] || [], l[o].push(d))
			}), l
		}

		function r(e) {
			return !(e < Me) && (!(e > xe) && (void 0 === ue[e] || void 0 !== Re[e]))
		}

		function i(t) {
			var a, n, s, r, i, o, l, c = !! ve[t] && ve[t],
				d = c && c[0].background,
				u = "",
				m = "";
			if (c) {
				for (i = '<div class="mbsc-cal-marks">', a = 0; a < c.length; a++) r = c[a], u += (r.cssClass || "") + " ", i += '<div class="mbsc-cal-mark"' + (r.color ? ' style="background:' + r.color + ';"' : "") + "></div>", r.icon && (m += '<span class="mbsc-ic mbsc-ic-' + r.icon + '"' + (r.text ? "" : r.color ? ' style="color:' + r.color + ';"' : "") + "></span>\n");
				i += "</div>", ce && (c[0] && (n = c[0].text, s = c[0].color), n ? o = '<div class="mbsc-cal-txt" title="' + Ee("<div>" + n + "</div>")
					.text() + '"' + (s ? ' style="background:' + s + ";color:" + D(s) + ';"' : "") + ">" + m + n + "</div>" : m && (o = '<div class="mbsc-cal-txt mbsc-cal-icons">' + m + "</div>"))
			}
			return l = {
				marked: c,
				background: d,
				cssClass: u,
				ariaLabel: ce ? n : "",
				markup: ce ? o : le ? i : ""
			}, ze(l, e._getDayProps(t, l))
		}

		function l(e) {
			return ' style="' + (be ? "transform: translateY(" + 100 * e + "%)" : "left:" + 100 * e * Ye + "%") + '"'
		}

		function c() {
			Oe = "auto" == je.months ? Math.max(1, Math.min(3, Math.floor((Z || V(Q)) / 280))) : +je.months, Le = Oe + 2 * Fe, He = Math.floor(Oe / 2), Pe = Math.round(Oe / 2) - 1, We = void 0 === je.showOuterDays ? Oe < 2 : je.showOuterDays, be = be && Oe < 2, X = Z || 280 * Oe
		}

		function d(t, a) {
			ue = s(je.invalid, t, a), Re = s(je.valid, t, a), ve = s(je.labels || je.events || je.marked || je.colors, t, a), e._onGenMonth(t, a)
		}

		function u(e) {
			var t = je.getYear(e),
				a = je.getMonth(e);
			se = e, w(e), $e("onMonthChange", {
				year: t,
				month: a
			}), $e("onMonthLoading", {
				year: t,
				month: a
			}), d(t, a)
		}

		function m(e) {
			var t = je.getYear(e),
				a = je.getMonth(e);
			void 0 !== Ie ? g(e, Ie, !0) : $e("onMonthLoaded", {
				year: t,
				month: a
			})
		}

		function h() {
			var e;
			return e = '<div class="mbsc-cal-tabs-c"><ul class="mbsc-cal-tabs" role="tablist">', je.controls.forEach(function(t, a) {
				ee[t] && (e += '<li role="tab" aria-controls="' + Ze.id + "-mbsc-pnl-" + a + '" class="mbsc-cal-tab mbsc-fr-btn-e ' + (a ? "" : ne) + '" data-control="' + t + '">' + (je.tabLink ? '<a href="#">' + je[t + "Text"] + "</a>" : je[t + "Text"]) + "</li>")
			}), e += "</ul></div>"
		}

		function f() {
			var e, t, a, n, s = "",
				r = pe ? je.btnCalNextClass : je.btnCalPrevClass,
				i = pe ? je.btnCalPrevClass : je.btnCalNextClass;
			for (n = '<div class="mbsc-cal-btn-w"><div data-step="-1" role="button" tabindex="0" aria-label="' + je.prevMonthText + '" class="' + r + ' mbsc-cal-prev mbsc-cal-prev-m mbsc-cal-btn mbsc-fr-btn mbsc-fr-btn-e"></div>', t = 0; t < Oe; t++) n += '<div role="button" class="mbsc-cal-month"></div>';
			for (n += '<div data-step="1" role="button" tabindex="0" aria-label="' + je.nextMonthText + '" class="' + i + ' mbsc-cal-next mbsc-cal-next-m mbsc-cal-btn mbsc-fr-btn mbsc-fr-btn-e"></div></div>', qe && (s = '<div class="mbsc-cal-btn-w"><div data-step="-12" role="button" tabindex="0" aria-label="' + je.prevYearText + '" class="' + r + ' mbsc-cal-prev mbsc-cal-prev-y mbsc-cal-btn mbsc-fr-btn mbsc-fr-btn-e"></div><div role="button" class="mbsc-cal-year"></div><div data-step="12" role="button" tabindex="0" aria-label="' + je.nextYearText + '" class="' + i + ' mbsc-cal-next mbsc-cal-next-y mbsc-cal-btn mbsc-fr-btn mbsc-fr-btn-e"></div></div>'), e = '<div class="mbsc-w-p mbsc-cal-c"><div class="mbsc-cal ' + (Oe > 1 ? " mbsc-cal-multi " : "") + (Be ? " mbsc-cal-weeks " : "") + (be ? " mbsc-cal-vertical" : "") + (le ? " mbsc-cal-has-marks" : "") + (ce ? " mbsc-cal-has-txt" : "") + (We ? "" : " mbsc-cal-hide-diff ") + (je.calendarClass || "") + '"' + (fe ? "" : ' style="min-width:' + (Z || 280 * Oe) + 'px;"') + '><div class="mbsc-cal-hdr">' + (Ue < De || Oe > 1 ? s + n : n + s) + '</div><div class="mbsc-cal-body"><div class="mbsc-cal-day-picker"><div class="mbsc-cal-days-c">', a = 0; a < Oe; a++) {
				for (e += '<div class="mbsc-cal-days">', t = 0; t < 7; t++) e += "<div>" + je["dayNames" + Ke][(t + je.firstDay) % 7] + "</div>";
				e += "</div>"
			}
			if (e += '</div><div class="mbsc-cal-scroll-c mbsc-cal-day-scroll-c ' + (je.calendarClass || "") + '"' + (je.calendarHeight ? ' style="height:' + je.calendarHeight + 'px"' : "") + '><div class="mbsc-cal-scroll" style="width:' + 100 / Oe + '%">' + g(se) + "</div></div></div>", de) {
				for (e += '<div class="mbsc-cal-month-picker mbsc-cal-picker mbsc-cal-h"><div class="mbsc-cal-scroll-c ' + (je.calendarClass || "") + '"><div class="mbsc-cal-scroll">', t = 0; t < 3; t++) {
					for (e += '<div class="mbsc-cal-slide"' + l(t - 1) + '><div role="grid" class="mbsc-cal-table"><div class="mbsc-cal-row">', a = 0; a < 12; a++) a && a % 3 == 0 && (e += '</div><div class="mbsc-cal-row">'), e += '<div role="gridcell"' + (1 == t ? ' tabindex="-1" aria-label="' + je.monthNames[a] + '" data-val="' + a + '"' : "") + ' class="mbsc-cal-cell' + (1 == t ? " mbsc-btn-e" : "") + '"><div class="mbsc-cal-cell-i mbsc-cal-cell-txt">' + (1 == t ? je.monthNamesShort[a] : "&nbsp;") + "</div></div>";
					e += "</div></div></div>"
				}
				for (e += "</div></div></div>", e += '<div class="mbsc-cal-year-picker mbsc-cal-picker mbsc-cal-h"><div class="mbsc-cal-scroll-c ' + (je.calendarClass || "") + '"><div class="mbsc-cal-scroll">', t = -1; t < 2; t++) e += b(F(se, t), t);
				e += "</div></div></div>"
			}
			return e += "</div></div></div>"
		}

		function b(e, t) {
			var a, n = je.getYear(e),
				s = '<div class="mbsc-cal-slide"' + l(t) + '><div role="grid" class="mbsc-cal-table"><div class="mbsc-cal-row">';
			for (a = 0; a < 12; a++) a && a % 3 == 0 && (s += '</div><div class="mbsc-cal-row">'), s += '<div role="gridcell" tabindex="-1" aria-label="' + n + '" data-val="' + n + '" class="mbsc-cal-cell mbsc-btn-e ' + (n < ke || n > _e ? " mbsc-btn-d mbsc-fr-btn-d " : "") + (n == je.getYear(se) ? ae : "") + '"><div class="mbsc-cal-cell-i mbsc-cal-cell-txt">' + n + Xe + "</div></div>", n++;
			return s += "</div></div></div>"
		}

		function v(t, a) {
			var n, s, o, c, d, u, m, h, f, p, b, v, g, x, T, y, _ = 1,
				w = 0,
				M = je.getYear(t),
				S = je.getMonth(t),
				C = je.getDay(t),
				k = null !== je.defaultValue || e._hasValue ? e.getDate(!0) : null,
				N = je.getDate(M, S, C)
					.getDay(),
				V = '<div class="mbsc-cal-slide"' + l(a) + '><div role="grid" class="mbsc-cal-table"><div class="mbsc-cal-row">';
			for (je.firstDay - N > 0 && (w = 7), y = 0; y < 7 * G; y++) T = y + je.firstDay - w, n = je.getDate(M, S, T - N + C), o = n.getFullYear(), c = n.getMonth(), d = n.getDate(), u = je.getMonth(n), m = je.getDay(n), x = je.getMaxDayOfMonth(o, c), h = o + "-" + (c + 1) + "-" + d, f = ze({
				valid: r(n),
				selected: k && k.getFullYear() === o && k.getMonth() === c && k.getDate() === d
			}, i(n)), p = f.valid, b = f.selected, s = f.cssClass, v = new Date(n)
				.setHours(12, 0, 0, 0) === (new Date)
				.setHours(12, 0, 0, 0), g = u !== S, re[h] = f, y && y % 7 == 0 && (V += '</div><div class="mbsc-cal-row">'), Be && y % 7 == 0 && ("month" == Be && g && _ > 1 ? _ = 1 == d ? 1 : 2 : "year" == Be && (_ = je.getWeekNumber(je.getDate(o, c, d + (7 - je.firstDay + 1) % 7))), V += '<div role="gridcell" class="mbsc-cal-cell mbsc-cal-week-nr">' + _ + "</div>", _++), V += '<div role="gridcell" tabindex="-1" aria-label="' + (v ? je.todayText + ", " : "") + je.dayNames[n.getDay()] + ", " + je.monthNames[u] + " " + m + " " + (f.ariaLabel ? ", " + f.ariaLabel : "") + '"' + (g && !We ? ' aria-hidden="true"' : "") + (b ? ' aria-selected="true"' : "") + (p ? "" : ' aria-disabled="true"') + ' data-full="' + h + '"class="mbsc-cal-cell mbsc-cal-day mbsc-cal-day' + T % 7 + " " + (je.dayClass || "") + " " + (b ? ae : "") + (v ? " " + je.todayClass : "") + (s ? " " + s : "") + (1 == m ? " mbsc-cal-day-first" : "") + (m == x ? " mbsc-cal-day-last" : "") + (g ? " mbsc-cal-day-diff" : "") + (p ? " mbsc-btn-e" : " mbsc-btn-d") + (f.marked ? " mbsc-cal-day-marked" : "") + (f.background ? " mbsc-cal-day-colored" : "") + '"><div class="mbsc-cal-cell-i mbsc-cal-day-i"><div class="mbsc-cal-day-date mbsc-cal-cell-txt"' + (f.background ? ' style="background:' + f.background + ";color:" + D(f.background) + '"' : "") + ">" + m + "</div>" + (f.markup || "") + "</div></div>";
			return V += "</div></div></div>"
		}

		function g(e, t, a) {
			var n, s = je.getYear(e),
				r = je.getMonth(e),
				i = ie ? ie.pos : 0,
				o = "";
			for (t || $e("onMonthLoading", {
				year: s,
				month: r
			}), d(s, r), n = 0; n < Le; n++) o += v(I(e, n - Pe - Fe), i + n - Fe);
			return Ie = void 0, a && ie && (ie.$scroller.html(o), $e("onMonthLoaded", {
				year: s,
				month: r
			})), o
		}

		function x(t) {
			var a = ie && ie.$scroller;
			je.highlight && ie && (Ee(".mbsc-selected", a)
				.removeClass(ae)
				.removeAttr("aria-selected"), (null !== je.defaultValue || e._hasValue) && Ee('.mbsc-cal-day[data-full="' + t.getFullYear() + "-" + (t.getMonth() + 1) + "-" + t.getDate() + '"]', a)
				.addClass(ae)
				.attr("aria-selected", "true"))
		}

		function T(e, t) {
			Ee(".mbsc-selected", t)
				.removeClass(ae)
				.removeAttr("aria-selected"), Ee('.mbsc-cal-cell[data-val="' + e + '"]', t)
				.addClass(ae)
				.attr("aria-selected", "true")
		}

		function y(e, t, a, n) {
			var s, r;
			e < Me && (e = Me), e > xe && (e = xe), oe && ("calendar" === Je || t) && (r = A(e), Ae && (s = 6 == G ? je.getMonth(e) - je.getMonth(se) + 12 * (je.getYear(e) - je.getYear(se)) : Math.trunc(Math.round((r - se) / 864e5) / (7 * G))) && (ie.queue = [], H(ie, s, a, n)), t || x(e), Ae = !0)
		}

		function w(e) {
			var t, a, n, s = je.getYear(e),
				r = je.getMonth(e),
				i = s + Xe;
			if (de) {
				if (T(r, Ve.$scroller), T(s, Ge.$scroller), H(Ge, Math.floor(s / 12) - Math.floor(je.getYear(Ge.first) / 12), !0), Ee(".mbsc-cal-cell", Ve.$scroller)
					.removeClass("mbsc-btn-d mbsc-fr-btn-d"), s === ke) for (t = 0; t < Ce; t++) Ee('.mbsc-cal-cell[data-val="' + t + '"]', Ve.$scroller)
					.addClass("mbsc-btn-d mbsc-fr-btn-d");
				if (s === _e) for (t = ye + 1; t <= 12; t++) Ee('.mbsc-cal-cell[data-val="' + t + '"]', Ve.$scroller)
					.addClass("mbsc-btn-d mbsc-fr-btn-d")
			}
			for (M(Ee(".mbsc-cal-prev-m", W), je.getDate(s, r - Pe - 1, 1) < we), M(Ee(".mbsc-cal-next-m", W), je.getDate(s, r + Oe - Pe, 1) > ge), M(Ee(".mbsc-cal-prev-y", W), je.getDate(s - 1, r, 1) < we), M(Ee(".mbsc-cal-next-y", W), je.getDate(s + 1, r, 1) > ge), K.attr("aria-label", s)
				.html(i), t = 0; t < Oe; t++) e = je.getDate(s, r - Pe + t, 1), a = je.getYear(e), n = je.getMonth(e), i = a + Xe, $.eq(t)
				.attr("aria-label", je.monthNames[n] + (qe ? "" : " " + s))
				.html((!qe && Ue < De ? i + " " : "") + Ne[n] + (!qe && Ue > De ? " " + i : ""))
		}

		function M(e, t) {
			t ? e.addClass(te)
				.attr("aria-disabled", "true") : e.removeClass(te)
				.removeAttr("aria-disabled")
		}

		function S(t) {
			var a = e.live,
				n = e.getDate(!0),
				s = t.attr("data-full"),
				r = s.split("-"),
				i = _(r[0], r[1] - 1, r[2]),
				o = _(i.getFullYear(), i.getMonth(), i.getDate(), n.getHours(), n.getMinutes(), n.getSeconds()),
				l = t.hasClass("mbsc-selected");
			je.readonly || !We && t.hasClass("mbsc-cal-day-diff") || !1 !== $e("onDayChange", ze(re[s], {
				date: o,
				target: t[0],
				selected: l
			})) && (Ae = je.outerMonthChange && (i < I(se, -Pe) || i >= I(se, Oe - Pe)), me = !0, e.setDate(o, a, 1e3, !a, !0), a && $e("onSet", {
				valueText: e._value
			}))
		}

		function C(e) {
			a(R), y(je.getDate(je.getYear(ie.first), e.attr("data-val"), 1), !0, !0)
		}

		function k(e) {
			a(q), y(je.getDate(e.attr("data-val"), je.getMonth(ie.first), 1), !0, !0)
		}

		function A(e) {
			var t = je.getYear(e),
				a = je.getMonth(e),
				n = e.getDay(),
				s = 0;
			return je.firstDay - n > 0 && (s = 7), 6 == G ? je.getDate(t, a, 1) : je.getDate(t, a, je.firstDay - s - n + je.getDay(e))
		}

		function I(e, t) {
			var a = je.getYear(e),
				n = je.getMonth(e),
				s = je.getDay(e);
			return 6 == G ? je.getDate(a, n + t, 1) : je.getDate(a, n, s + t * G * 7)
		}

		function F(e, t) {
			var a = 12 * Math.floor(je.getYear(e) / 12);
			return je.getDate(a + 12 * t, 0, 1)
		}

		function H(t, a, n, s) {
			a && e._isVisible && (t.queue.push(arguments), 1 == t.queue.length && O(t, a, n, s))
		}

		function O(e, t, a, n) {
			var s, r, i = "",
				o = e.$scroller,
				l = e.buffer,
				c = e.offset,
				d = e.pages,
				u = e.total,
				m = e.first,
				h = e.genPage,
				f = e.getFirst,
				p = t > 0 ? Math.min(t, l) : Math.max(t, -l),
				b = e.pos * Ye + p - t + c,
				v = Math.abs(t) > l;
			e.callback && (e.load(), e.callback()), e.first = f(m, t), e.pos += p * Ye, e.changing = !0, e.load = function() {
				if (v) {
					for (s = 0; s < d; s++) r = t + s - c, i += h(f(m, r), b + r);
					t > 0 ? (Ee(".mbsc-cal-slide", o)
						.slice(-d)
						.remove(), o.append(i)) : t < 0 && (Ee(".mbsc-cal-slide", o)
						.slice(0, d)
						.remove(), o.prepend(i))
				}
			}, e.callback = function() {
				var a = Math.abs(p),
					i = "";
				for (s = 0; s < a; s++) r = t + s - c - l + (t > 0 ? u - a : 0), i += h(f(m, r), b + r);
				if (t > 0 ? (o.append(i), Ee(".mbsc-cal-slide", o)
					.slice(0, p)
					.remove()) : t < 0 && (o.prepend(i), Ee(".mbsc-cal-slide", o)
					.slice(p)
					.remove()), v) {
					for (i = "", s = 0; s < a; s++) r = t + s - c - l + (t > 0 ? 0 : u - a), i += h(f(m, r), b + r);
					t > 0 ? (Ee(".mbsc-cal-slide", o)
						.slice(0, p)
						.remove(), o.prepend(i)) : t < 0 && (Ee(".mbsc-cal-slide", o)
						.slice(p)
						.remove(), o.append(i))
				}
				L(e), n && n(), e.callback = null, e.load = null, e.queue.shift(), v = !1, e.queue.length ? O.apply(this, e.queue[0]) : (e.changing = !1, e.onAfterChange(e.first))
			}, e.onBeforeChange(e.first), e.load(), e.scroller.scroll(-e.pos * e.size, a ? 200 : 0, !1, e.callback)
		}

		function P(e, t, a, n, s, r, i, o, l, c, d, u, m) {
			var h = be ? "Y" : "X",
				f = {
					$scroller: Ee(".mbsc-cal-scroll", e),
					queue: [],
					buffer: n,
					offset: s,
					pages: r,
					first: o,
					total: i,
					pos: 0,
					min: t,
					max: a,
					genPage: u,
					getFirst: m,
					onBeforeChange: c,
					onAfterChange: d
				};
			return f.scroller = new ot(e, {
				axis: h,
				easing: "",
				contSize: 0,
				maxSnapScroll: n,
				mousewheel: je.mousewheel,
				time: 200,
				lock: !0,
				rtl: pe,
				stopProp: !1,
				minScroll: 0,
				maxScroll: 0,
				onBtnTap: function(e) {
					"touchend" == e.domEvent.type && p(), l(Ee(e.target))
				},
				onAnimationEnd: function(e) {
					u && H(f, Math.round((-f.pos * f.size - e["pos" + h]) / f.size) * Ye)
				}
			}), f
		}

		function L(e) {
			var t, a = 0,
				n = 0,
				s = e.first;
			if (e.getFirst) {
				for (a = e.buffer, n = e.buffer; n && e.getFirst(s, n + e.pages - e.offset - 1) > e.max;) n--;
				for (; a && e.getFirst(s, -a - e.offset) < e.min;) a--
			}
			t = Math.round(X / e.pages), fe && e.pages > 1 && e.size != t && e.$scroller.width(t), ze(e.scroller.settings, {
				snap: t,
				minScroll: (-e.pos * Ye - n) * t,
				maxScroll: (-e.pos * Ye + a) * t
			}), e.size = t, e.scroller.refresh()
		}

		function E(t) {
			e._isVisible && oe && (ie && ie.changing ? Ie = t : g(se, t, !0))
		}

		function Y() {
			if (oe) {
				var t = Ee(".mbsc-cal-scroll-c", W);
				ie = P(t[0], we, ge, Fe, Pe, Oe, Le, se, S, u, m, v, I), de && (Ve = P(t[1], null, null, 1, 0, 1, 3, se, C), Ge = P(t[2], Se, Te, 1, 0, 1, 3, se, k, o, o, b, F), e.tap($, function() {
					n(R), a(q)
				}), e.tap(K, function() {
					n(q), a(R)
				})), N(Ee(".mbsc-cal-btn", W), function(e, t) {
					H(ie, e, !0, t)
				}), m(se)
			}
			e.tap(Ee(".mbsc-cal-tab", W), function() {
				e.changeTab(Ee(this)
					.attr("data-control"))
			})
		}
		var j, z, W, $, R, J, B, K, q, U, G, X, Z, Q, ee, te, ae, ne, se, re, ie, oe, le, ce, de, ue, me, fe, pe, be, ve, ge, xe, Te, ye, _e, we, Me, Se, Ce, ke, De, Ne, Ve, Ae, Ie, Fe, He, Oe, Pe, Le, Ye, je, We, $e, Re, Je, Be, Ke, qe, Ue, Ge, Xe, Ze = this;
		return function() {
			var t, a, n;
			ee = {}, $e = e.trigger, j = Ee(Ze), n = ze({}, e.settings), je = ze(e.settings, ft, n), t = je.controls.join(","), pe = je.rtl, Fe = je.pageBuffer, Be = je.weekCounter, G = je.weeks, be = "vertical" == je.calendarScroll, Q = "inline" == je.display ? j.is("div") ? j : j.parent() : e._$window, Ke = "full" == je.weekDays ? "" : "min" == je.weekDays ? "Min" : "Short", a = je.layout || (/top|bottom|inline/.test(je.display) ? "liquid" : ""), fe = "liquid" == a, Z = fe ? null : je.calendarWidth, Ye = pe && !be ? -1 : 1, te = "mbsc-fr-btn-d " + (je.disabledClass || ""), ne = "mbsc-selected " + (je.selectedTabClass || ""), ae = "mbsc-selected " + (je.selectedClass || ""), t.match(/date/) && (ee.date = 1), t.match(/time/) && (ee.time = 1), t.match(/calendar/) && (ee.calendar = 1, oe = !0), de = je.quickNav && oe && 6 == G, qe = je.yearChange && 6 == G, fe && oe && "center" == je.display && (e._isFullScreen = !0), je.layout = a, je.preset = (ee.date || oe ? "date" : "") + (ee.time ? "time" : "")
		}(), U = ht.call(this, e),
		function() {
			Ne = qe ? je.monthNamesShort : je.monthNames, Xe = je.yearSuffix || "", De = (je.dateWheels || je.dateFormat)
				.search(/m/i), Ue = (je.dateWheels || je.dateFormat)
				.search(/y/i), je.min && (we = _(je.min.getFullYear(), je.min.getMonth(), 1), Me = _(je.min.getFullYear(), je.min.getMonth(), je.min.getDate()), ke = je.getYear(we), Ce = je.getMonth(we), Se = je.getDate(12 * Math.floor(ke / 12), 0, 1)), je.max && (ge = _(je.max.getFullYear(), je.max.getMonth(), 1), xe = _(je.max.getFullYear(), je.max.getMonth(), je.max.getDate()), _e = je.getYear(ge), ye = je.getMonth(ge), Te = je.getDate(12 * Math.floor(_e / 12), 0, 1))
		}(), e.refresh = function() {
			E(!1)
		}, e.redraw = function() {
			E(!0)
		}, e.navigate = function(e, t) {
			y(e, !0, t)
		}, e.changeTab = function(t) {
			e._isVisible && ee[t] && Je != t && (Je = t, Ee(".mbsc-cal-tab", W)
				.removeClass(ne)
				.removeAttr("aria-selected"), Ee('.mbsc-cal-tab[data-control="' + t + '"]', W)
				.addClass(ne)
				.attr("aria-selected", "true"), B.addClass("mbsc-cal-h"), ee[Je].removeClass("mbsc-cal-h"), "calendar" == Je && y(e.getDate(!0), !1, !0), e._showDayPicker(), e.trigger("onTabChange", {
				tab: Je
			}))
		}, e._onGenMonth = o, e._onSelectShow = o, e._getDayProps = o, e._prepareObj = s, e._showDayPicker = function() {
			de && (a(q, !0), a(R, !0))
		}, ze(U, {
			labels: null,
			compClass: "mbsc-calendar mbsc-dt",
			onMarkupReady: function(t) {
				var a = 0;
				W = Ee(t.target), J = Ee(".mbsc-fr-c", W), re = {}, se = A(e.getDate(!0)), oe && (le = !(!je.marked && !je.data), ce = je.showEventCount || !(!je.events && !je.labels), Ae = !0, Je = "calendar", c(), J.append(f()), $ = Ee(".mbsc-cal-month", W), K = Ee(".mbsc-cal-year", W), z = Ee(".mbsc-cal-day-scroll-c", W)), de && (q = Ee(".mbsc-cal-year-picker", W), R = Ee(".mbsc-cal-month-picker", W)), B = Ee(".mbsc-w-p", W), je.controls.length > 1 && J.before(h()), ["date", "time", "calendar"].forEach(function(e) {
					ee[e] ? (ee[e] = B.eq(a)
						.addClass("mbsc-cal-h"), a++) : "date" == e && !ee.date && oe && (B.eq(a)
						.remove(), a++)
				}), je.controls.forEach(function(e) {
					J.append(ee[e])
				}), oe && ee.date && (je.tabs = !0), !oe && ee.date && ee.date.css("position", "relative"), Y()
			},
			onShow: function() {
				oe && w(se)
			},
			onHide: function() {
				oe && (ie.scroller.destroy(), de && (Ve.scroller.destroy(), Ge.scroller.destroy()), ie = null, Ve = null, Ge = null, Je = null)
			},
			onValidated: function(t) {
				var a, n, s = t.index,
					r = e._order;
				n = e.getDate(!0), me ? a = "calendar" : void 0 !== s && (a = r.dd == s || r.d == s || r.m == s || r.y == s ? "date" : "time"), $e("onSetDate", {
					date: n,
					control: a
				}), y(n, !1, !! t.time), me = !1
			},
			onPosition: function(t) {
				var a, n, s, r, i = t.windowHeight,
					o = (t.hasTabs || !0 === je.tabs || !1 !== je.tabs && fe) && je.controls.length > 1;
				if (o ? (W.addClass("mbsc-cal-tabbed"), Je = Ee(".mbsc-cal-tab.mbsc-selected", W)
					.attr("data-control"), B.addClass("mbsc-cal-h"), ee[Je].removeClass("mbsc-cal-h")) : (Je = "calendar", W.removeClass("mbsc-cal-tabbed"), B.removeClass("mbsc-cal-h")), e._isFullScreen && (z.height(""), r = t.popup.offsetHeight, i >= r && z.height(i - r + z[0].offsetHeight)), oe) {
					if ((fe || be || o) && (X = z[0][be ? "offsetHeight" : "offsetWidth"]), fe && qe) for (Ne = je.maxMonthWidth > (Oe > 1 ? (X - 80) / Oe : X / 2 - 80) ? je.monthNamesShort : je.monthNames, n = je.getYear(se), s = je.getMonth(se), a = 0; a < Oe; a++) $.eq(a)
						.text(Ne[je.getMonth(je.getDate(n, s - Pe + a, 1))]);
					L(ie)
				}
				de && (L(Ve), L(Ge))
			}
		})
	}, bt = {};
	he.presetShort("calendar"), he.presets.scroller.calendar = function(e) {
		function t(e) {
			return _(e.getFullYear(), e.getMonth(), e.getDate())
		}

		function a(e) {
			if (b = {}, e && e.length) for (o = 0; o < e.length; o++) b[t(e[o])] = e[o]
		}

		function n() {
			e.redraw()
		}
		var s, r, i, o, c, u = ze({}, e.settings),
			m = ze(e.settings, bt, u),
			h = m.defaultValue,
			f = "multiple" == m.select || m.select > 1 || "week" == m.selectType,
			p = d(m.select) ? m.select : 1 / 0,
			b = {};
		if (s = pt.call(this, e), i = void 0 === m.firstSelectDay ? m.firstDay : m.firstSelectDay, f && h && h.length) for (o = 0; o < h.length; o++) b[t(h[o])] = h[o];
		return e._getDayProps = function(e) {
			return {
				selected: f ? void 0 !== b[e] : void 0
			}
		}, e.setVal = function(t, s, r, i, o) {
			f && (a(t), t = t ? t[0] : null), e._setVal(t, s, r, i, o), f && n()
		}, e.getVal = function(t) {
			return f ? l(b) : e.getDate(t)
		}, ze({}, s, {
			highlight: !f,
			outerMonthChange: !f,
			parseValue: function(a) {
				var n, r;
				if (f && a && "string" == typeof a) {
					for (b = {}, a = a.split(","), n = 0; n < a.length; n++) r = M(e._format, a[n].replace(/^\s+|\s+$/g, ""), m), b[t(r)] = r;
					a = a[0]
				}
				return f && h && h.length && (m.defaultValue = h[0]), s.parseValue.call(this, a)
			},
			formatValue: function(t) {
				var a, n = [];
				if (f) {
					for (a in b) n.push(w(e._format, b[a], m));
					return n.join(", ")
				}
				return s.formatValue.call(this, t, e)
			},
			onClear: function() {
				f && (b = {}, n())
			},
			onBeforeShow: function() {
				void 0 !== m.setOnDayTap || m.buttons && m.buttons.length || (m.setOnDayTap = !0), m.setOnDayTap && "inline" != m.display && (m.outerMonthChange = !1), m.counter && f && (m.headerText = function() {
					var e = 0,
						t = "week" == m.selectType ? 7 : 1;
					return Ee.each(b, function() {
						e++
					}), e = Math.round(e / t), (e > 1 ? m.selectedPluralText || m.selectedText : m.selectedText)
						.replace(/{count}/, e)
				})
			},
			onMarkupReady: function(e) {
				s.onMarkupReady.call(this, e), r = Ee(e.target), f && (Ee(".mbsc-fr-hdr", r)
					.attr("aria-live", "off"), c = ze({}, b))
			},
			onDayChange: function(a) {
				var s = a.date,
					o = t(s),
					c = Ee(a.target),
					d = a.selected;
				if (f) if ("week" == m.selectType) {
					var u, h, v = o.getDay() - i;
					for (v = v < 0 ? 7 + v : v, "multiple" != m.select && (b = {}), u = 0; u < 7; u++) h = _(o.getFullYear(), o.getMonth(), o.getDate() - v + u), d ? delete b[h] : l(b)
						.length / 7 < p && (b[h] = h);
					n()
				} else {
					var g = Ee('.mbsc-cal-day[data-full="' + c.attr("data-full") + '"]', r);
					d ? (g.removeClass("mbsc-selected")
						.removeAttr("aria-selected"), delete b[o]) : l(b)
						.length < p && (g.addClass("mbsc-selected")
						.attr("aria-selected", "true"), b[o] = o)
				}
				if (m.setOnDayTap && "multiple" != m.select && "inline" != m.display) return e.setDate(s), e.select(), !1
			},
			onCancel: function() {
				!e.live && f && (b = ze({}, c))
			}
		})
	};
	var vt = function(e, t, a) {
		var n, s, r, i, l = this;
		We.call(this, e, t, !0), l.__init = o, l.__destroy = o, l._init = function(t) {
			var a;
			i = l.settings, n = Ee(e), a = !! s, s = n.parent(), s = s.hasClass("mbsc-input-wrap") ? s.parent() : s, l._$parent = s, r && s.removeClass(r), r = l._css + " mbsc-progress-w mbsc-control-w mbsc-" + i.theme + (i.baseTheme ? " mbsc-" + i.baseTheme : "") + (i.rtl ? " mbsc-rtl" : " mbsc-ltr"), s.addClass(r), n.addClass("mbsc-control"), l.__init(t), a || l._attachChange(), l.refresh()
		}, l._destroy = function() {
			l.__destroy(), s.removeClass(r), n.removeClass("mbsc-control")
		}, a || l.init(t)
	}, gt = ["touchstart", "touchmove", "touchend", "touchcancel", "mousedown", "mousemove", "mouseup", "mouseleave"],
		xt = {
			tap: !0
		}, Tt = void 0,
		yt = function() {
			function e(t, a) {
				var n = this;
				pe(this, e);
				var s = ze({}, xt, he.settings, a),
					r = Ee(t),
					i = r.parent(),
					o = i.hasClass("mbsc-input-wrap") ? i.parent() : i,
					l = r.next()
						.hasClass("mbsc-fr") ? r.next() : null,
					c = A(r);
				l && l.insertAfter(o), E(o, c), r.addClass("mbsc-control"), gt.forEach(function(e) {
					t.addEventListener(e, n)
				}), this.settings = s, this._type = c, this._elm = t, this._$elm = r, this._$parent = o, this._$frame = l, this._ripple = I(s.theme)
			}
			return be(e, [{
				key: "destroy",
				value: function() {
					var e = this;
					this._$elm.removeClass("mbsc-control"), gt.forEach(function(t) {
						e._elm.removeEventListener(t, e)
					})
				}
			}, {
				key: "option",
				value: function(e) {
					ze(this.settings, e), this._ripple = I(this.settings.theme)
				}
			}, {
				key: "handleEvent",
				value: function(e) {
					switch (e.type) {
						case "touchstart":
						case "mousedown":
							this._onStart(e);
							break;
						case "touchmove":
						case "mousemove":
							this._onMove(e);
							break;
						case "touchend":
						case "touchcancel":
						case "mouseup":
						case "mouseleave":
							this._onEnd(e)
					}
				}
			}, {
				key: "_addRipple",
				value: function(e) {
					this._ripple && this._$rippleElm && this._ripple.addRipple(this._$rippleElm, e)
				}
			}, {
				key: "_removeRipple",
				value: function() {
					this._ripple && this._$rippleElm && this._ripple.removeRipple()
				}
			}, {
				key: "_onStart",
				value: function(e) {
					var t = this._elm;
					C(e, t) && (this._startX = v(e, "X"), this._startY = v(e, "Y"), Tt && Tt.removeClass("mbsc-active"), t.disabled || (this._isActive = !0, Tt = this._$elm, Tt.addClass("mbsc-active"), this._addRipple(e)))
				}
			}, {
				key: "_onMove",
				value: function(e) {
					(this._isActive && Math.abs(v(e, "X") - this._startX) > 9 || Math.abs(v(e, "Y") - this._startY) > 9) && (this._$elm.removeClass("mbsc-active"), this._removeRipple(), this._isActive = !1)
				}
			}, {
				key: "_onEnd",
				value: function(e) {
					var t = this,
						a = this._elm,
						n = this._type;
					this._isActive && this.settings.tap && "touchend" == e.type && !a.readOnly && (a.focus(), /(button|submit|checkbox|switch|radio)/.test(n) && e.preventDefault(), /select/.test(n) || b(e, a)), this._isActive && setTimeout(function() {
						t._$elm.removeClass("mbsc-active"), t._removeRipple()
					}, 100), this._isActive = !1, Tt = null
				}
			}]), e
		}(),
		_t = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a));
				return L(n, n._$parent, n._$elm), n._$parent.addClass("mbsc-input"), n
			}
			return ge(t, e), be(t, [{
				key: "destroy",
				value: function() {
					ve(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "destroy", this)
						.call(this), this._$parent.removeClass("mbsc-ic-left mbsc-ic-right")
						.find(".mbsc-input-ic")
						.remove()
				}
			}]), t
		}(yt),
		wt = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a)),
					s = n._$elm,
					r = s.attr("data-icon");
				return s.addClass("mbsc-btn")
					.find(".mbsc-btn-ic")
					.remove(), r && (s.prepend('<span class="mbsc-btn-ic mbsc-ic mbsc-ic-' + r + '"></span>'), "" === s.text() && s.addClass("mbsc-btn-icon-only")), n._$rippleElm = s, n
			}
			return ge(t, e), t
		}(yt),
		Mt = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a));
				return n._$parent.prepend(n._$elm)
					.addClass("mbsc-checkbox mbsc-control-w")
					.find(".mbsc-checkbox-box")
					.remove(), n._$elm.after('<span class="mbsc-checkbox-box"></span>'), n
			}
			return ge(t, e), t
		}(yt),
		St = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a));
				return n._$parent.addClass("mbsc-radio mbsc-control-w")
					.find(".mbsc-radio-box")
					.remove(), n._$elm.after('<span class="mbsc-radio-box"><span></span></span>'), n
			}
			return ge(t, e), t
		}(yt),
		Ct = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a)),
					s = n._$elm,
					r = n._$parent,
					i = r.find("input.mbsc-control"),
					o = i.length ? i : Ee('<input tabindex="-1" class="mbsc-control" readonly>');
				return n._$input = o, r.addClass("mbsc-select" + (n._$frame ? " mbsc-select-inline" : "")), s.after(o), o.after('<span class="mbsc-select-ic mbsc-ic mbsc-ic-arrow-down5"></span>'), s.hasClass("mbsc-comp") || (e.addEventListener("change", n), n._setText()), n
			}
			return ge(t, e), be(t, [{
				key: "destroy",
				value: function() {
					ve(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "destroy", this)
						.call(this), this._$elm.after(this._$input), this._elm.removeEventListener("change", this)
				}
			}, {
				key: "handleEvent",
				value: function(e) {
					ve(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "handleEvent", this)
						.call(this, e), "change" == e.type && this._setText()
				}
			}, {
				key: "_setText",
				value: function() {
					var e = this._elm;
					this._$elm.hasClass("mbsc-comp") || this._$input.val(-1 != e.selectedIndex ? e.options[e.selectedIndex].text : "")
				}
			}]), t
		}(_t),
		kt = ["keydown", "input", "scroll"],
		Dt = void 0;
	Ae && Ee(window)
		.on("resize orientationchange", F);
	var Nt = function(e) {
		function t(e, a) {
			pe(this, t);
			var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
				.call(this, e, a));
			return n._$parent.addClass("mbsc-textarea"), kt.forEach(function(e) {
				n._elm.addEventListener(e, n)
			}), H(e), n
		}
		return ge(t, e), be(t, [{
			key: "destroy",
			value: function() {
				var e = this;
				ve(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "destroy", this)
					.call(this), kt.forEach(function(t) {
					e._elm.removeEventListener(t, e)
				})
			}
		}, {
			key: "handleEvent",
			value: function(e) {
				switch (ve(t.prototype.__proto__ || Object.getPrototypeOf(t.prototype), "handleEvent", this)
					.call(this, e), e.type) {
					case "keydown":
					case "input":
						this._onInput(e);
						break;
					case "scroll":
						O(this._elm)
				}
			}
		}, {
			key: "_onInput",
			value: function() {
				var e = this;
				clearTimeout(this._debounce), this._debounce = setTimeout(function() {
					H(e._elm)
				}, 100)
			}
		}]), t
	}(_t),
		Vt = function(e) {
			function t(e, a) {
				pe(this, t);
				var n = xe(this, (t.__proto__ || Object.getPrototypeOf(t))
					.call(this, e, a)),
					s = void 0,
					r = void 0,
					i = n._$elm,
					o = n._$parent;
				return o.hasClass("mbsc-segmented-item-ready") || (s = Ee('<div class="mbsc-segmented"></div>'), o.after(s), o.parent()
					.find('input[name="' + i.attr("name") + '"]')
					.each(function() {
					var e = Ee(this);
					r = e.parent()
						.addClass("mbsc-segmented-item mbsc-segmented-item-ready"), Ee('<span class="mbsc-segmented-content">' + (e.attr("data-icon") ? '<span class="mbsc-ic mbsc-ic-' + e.attr("data-icon") + '"></span>' : "") + "</span>")
						.append(r.contents())
						.appendTo(r), r.prepend(e), s.append(r)
				})), n._$rippleElm = i.next(), n
			}
			return ge(t, e), t
		}(yt),
		At = function(e, t) {
			function a(t) {
				32 == t.keyCode && (t.preventDefault(), b || e.disabled || (m = Ee(this)
					.addClass("mbsc-active"), c(t)))
			}

			function n(e) {
				b && (e.preventDefault(), d(!0))
			}

			function s(t) {
				C(t, this) && !e.disabled && (m = Ee(this)
					.addClass("mbsc-active")
					.trigger("focus"), D && !m.hasClass("mbsc-step-disabled") && D.addRipple(m.find(".mbsc-segmented-content"), t), c(t), "mousedown" === t.type && Ee(document)
					.on("mousemove", i)
					.on("mouseup", r))
			}

			function r(e) {
				b && (e.preventDefault(), d(!0), "mouseup" === e.type && Ee(document)
					.off("mousemove", i)
					.off("mouseup", r))
			}

			function i(e) {
				b && (_ = v(e, "X"), w = v(e, "Y"), x = _ - A, T = w - I, (Math.abs(x) > 7 || Math.abs(T) > 7) && d())
			}

			function o() {
				var t;
				e.disabled || (t = parseFloat(Ee(this)
					.val()), l(isNaN(t) ? H : t))
			}

			function l(e, t, a) {
				Y = H, void 0 === t && (t = !0), void 0 === a && (a = t), H = void 0 !== e ? Math.min(S, Math.max(Math.round(e / N) * N, k)) : Math.min(S, Math.max(H + (m.hasClass("mbsc-stepper-minus") ? -N : N), k)), g = !0, p.removeClass("mbsc-step-disabled"), t && E.val(H), H == k ? f.addClass("mbsc-step-disabled") : H == S && h.addClass("mbsc-step-disabled"), H !== Y && a && E.trigger("change")
			}

			function c(e) {
				b || (b = !0, g = !1, A = v(e, "X"), I = v(e, "Y"), clearInterval(M), clearTimeout(M), M = setTimeout(function() {
					l(), M = setInterval(function() {
						l()
					}, 150)
				}, 300))
			}

			function d(e) {
				clearInterval(M), clearTimeout(M), !g && e && l(), b = !1, g = !1, m.removeClass("mbsc-active"), D && setTimeout(function() {
					D.removeRipple()
				}, 100)
			}

			function u(e, t) {
				var a = E.attr(e);
				return void 0 === a || "" === a ? t : +a
			}
			var m, h, f, p, b, g, x, T, y, _, w, M, S, k, D, N, V, A, I, F, H, O, P, L = this,
				E = Ee(e),
				Y = H;
			We.call(this, e, t, !0), L.getVal = function() {
				var e = parseFloat(E.val());
				return e = isNaN(e) ? H : e, Math.min(S, Math.max(Math.round(e / N) * N, k))
			}, L.setVal = function(e, t, a) {
				e = parseFloat(e), l(isNaN(e) ? H : e, t, a)
			}, L._init = function(t) {
				O = E.parent()
					.hasClass("mbsc-stepper"), P = O ? E.closest(".mbsc-stepper-cont") : E.parent(), V = L.settings, k = void 0 === t.min ? u("min", V.min) : t.min, S = void 0 === t.max ? u("max", V.max) : t.max, N = void 0 === t.step ? u("step", V.step) : t.step, y = E.attr("data-val") || V.val, H = Math.min(S, Math.max(Math.round(+e.value / N) * N || 0, k)), F = he.themes.form[V.theme], D = F && F.addRipple ? F : null, O || P.addClass("mbsc-stepper-cont mbsc-control-w")
					.append('<span class="mbsc-segmented mbsc-stepper"></span>')
					.find(".mbsc-stepper")
					.append('<span class="mbsc-segmented-item mbsc-stepper-control mbsc-stepper-minus ' + (H == k ? "mbsc-step-disabled" : "") + '"  tabindex="0"><span class="mbsc-segmented-content"><span class="mbsc-ic mbsc-ic-minus"></span></span></span>')
					.append('<span class="mbsc-segmented-item mbsc-stepper-control mbsc-stepper-plus ' + (H == S ? "mbsc-step-disabled" : "") + '"  tabindex="0"><span class="mbsc-segmented-content"> <span class="mbsc-ic mbsc-ic-plus"></span> </span></span>')
					.prepend(E), f = Ee(".mbsc-stepper-minus", P), h = Ee(".mbsc-stepper-plus", P), O || ("left" == y ? (P.addClass("mbsc-stepper-val-left"), E.after('<span class="mbsc-segmented-item"><span class="mbsc-segmented-content"></span></span>')) : "right" == y ? (P.addClass("mbsc-stepper-val-right"), h.after('<span class="mbsc-segmented-item"><span class="mbsc-segmented-content"></span></span>')) : f.after('<span class="mbsc-segmented-item"><span class="mbsc-segmented-content mbsc-stepper-val"></span></span>')), E.val(H)
					.attr("data-role", "stepper")
					.attr("min", k)
					.attr("max", S)
					.attr("step", N)
					.on("change", o), p = Ee(".mbsc-stepper-control", P)
					.on("keydown", a)
					.on("keyup", n)
					.on("mousedown touchstart", s)
					.on("touchmove", i)
					.on("touchend touchcancel", r), E.addClass("mbsc-stepper-ready mbsc-control")
			}, L._destroy = function() {
				E.removeClass("mbsc-control")
					.off("change", o), p.off("keydown", a)
					.off("keyup", n)
					.off("mousedown touchstart", s)
					.off("touchmove", i)
					.off("touchend touchcancel", r)
			}, L.init(t)
		};
	At.prototype = {
		_class: "stepper",
		_hasDef: !0,
		_defaults: {
			min: 0,
			max: 100,
			step: 1
		}
	}, he.classes.Stepper = At, he.presetShort("stepper", "Stepper");
	var It = function(e, t, a) {
		function n(t) {
			!C(t, this) || k || e.disabled || ($.stopProp && t.stopPropagation(), k = !0, Y = !1, D = !1, J = v(t, "X"), B = v(t, "Y"), I = J, S.removeClass("mbsc-progress-anim"), T = j ? Ee(".mbsc-slider-handle", this) : _, y && y.removeClass("mbsc-handle-curr"), y = T.parent()
				.addClass("mbsc-active mbsc-handle-curr"), H = +T.attr("data-index"), U = S[0].offsetWidth, A = S[0].getBoundingClientRect()
				.left, "mousedown" === t.type && (t.preventDefault(), Ee(document)
				.on("mousemove", s)
				.on("mouseup", r)))
		}

		function s(e) {
			k && (I = v(e, "X"), F = v(e, "Y"), N = I - J, V = F - B, (Math.abs(N) > 5 || Y) && (Y = !0, Math.abs(Z - new Date) > 50 && (Z = new Date, f(I, $.round, P))), Y ? e.preventDefault() : Math.abs(V) > 7 && h())
		}

		function r(e) {
			k && (e.preventDefault(), j || S.addClass("mbsc-progress-anim"), f(I, !0, !0), Y || D || ("touchend" == e.type && p(), X._onTap(G[H])), h())
		}

		function i() {
			k && h()
		}

		function l() {
			var e = X._readValue(Ee(this)),
				t = +Ee(this)
					.attr("data-index");
			e !== G[t] && (G[t] = e, z[t] = e, g(e, t))
		}

		function c(e) {
			e.stopPropagation()
		}

		function d(e) {
			e.preventDefault()
		}

		function u(t) {
			var a;
			if (!e.disabled) {
				switch (t.keyCode) {
					case 38:
					case 39:
						a = 1;
						break;
					case 40:
					case 37:
						a = -1
				}
				a && (t.preventDefault(), q || (H = +Ee(this)
					.attr("data-index"), g(G[H] + W * a, H, !0), q = setInterval(function() {
					g(G[H] + W * a, H, !0)
				}, 200)))
			}
		}

		function m(e) {
			e.preventDefault(), clearInterval(q), q = null
		}

		function h() {
			k = !1, y.removeClass("mbsc-active"), Ee(document)
				.off("mousemove", s)
				.off("mouseup", r)
		}

		function f(e, t, a) {
			var n = t ? Math.min(Math.round(Math.max(100 * (e - A) / U, 0) / R / W) * W * 100 / (L - E), 100) : Math.max(0, Math.min(100 * (e - A) / U, 100));
			O && (n = 100 - n), g(Math.round((E + n / R) * K) / K, H, a, n)
		}

		function b(e) {
			return 100 * (e - E) / (L - E)
		}

		function g(e, t, a, n, s, r) {
			var i = _.eq(t),
				o = i.parent();
			e = Math.min(L, Math.max(e, E)), void 0 === r && (r = a), X._update ? e = X._update(e, G, t, n, j, s, o) : o.css({
				left: O ? "auto" : (n || b(e)) + "%",
				right: O ? (n || b(e)) + "%" : "auto"
			}), e > E ? o.removeClass("mbsc-slider-start") : (G[t] > E || s) && o.addClass("mbsc-slider-start"), a && z[t] != e && (D = !0, z[t] = e, G[t] = e, X._fillValue(e, t, r)), i.attr("aria-valuenow", e)
		}
		var x, T, y, _, w, M, S, k, D, N, V, A, I, F, H, O, P, L, E, Y, j, z, W, $, R, J, B, K, q, U, G, X = this,
			Z = new Date;
		vt.call(this, e, t, !0), X._onTap = o, X.___init = o, X.___destroy = o, X._attachChange = function() {
			x.on($.changeEvent, l)
		}, X.__init = function(e) {
			var t;
			_ && (t = !0, _.parent()
				.remove()), X.___init(e), M = X._$parent, S = X._$track, x = M.find("input"), $ = X.settings, E = X._min, L = X._max, W = X._step, P = X._live, K = W % 1 != 0 ? 100 / (100 * +(W % 1)
				.toFixed(2)) : 1, R = 100 / (L - E) || 100, j = x.length > 1, O = $.rtl, G = [], z = [], x.each(function(e) {
				G[e] = X._readValue(Ee(this)), Ee(this)
					.attr("data-index", e)
			}), _ = M.find(".mbsc-slider-handle"), w = M.find(j ? ".mbsc-slider-handle-cont" : ".mbsc-progress-cont"), _.on("keydown", u)
				.on("keyup", m)
				.on("blur", m), w.on("touchstart mousedown", n)
				.on("touchmove", s)
				.on("touchend touchcancel", r)
				.on("pointercancel", i), t || (x.on("click", c), M.on("click", d))
		}, X.__destroy = function() {
			M.off("click", d), x.off($.changeEvent, l)
				.off("click", c), _.off("keydown", u)
				.off("keyup", m)
				.off("blur", m), w.off("touchstart mousedown", n)
				.off("touchmove", s)
				.off("touchend touchcancel", r)
				.off("pointercancel", i), X.___destroy()
		}, X.refresh = function() {
			x.each(function(e) {
				g(X._readValue(Ee(this)), e, !0, !1, !0, !1)
			})
		}, X.getVal = function() {
			return j ? G.slice(0) : G[0]
		}, X.setVal = X._setVal = function(e, t, a) {
			Ee.isArray(e) || (e = [e]), Ee.each(e, function(e, t) {
				G[e] = t
			}), Ee.each(e, function(e, t) {
				g(t, e, !0, !1, !0, a)
			})
		}, a || X.init(t)
	}, Ft = function(e, t) {
		var a, n, s, r, i = this;
		t = t || {}, ze(t, {
			changeEvent: "click",
			round: !1
		}), It.call(this, e, t, !0), i._readValue = function() {
			return e.checked ? 1 : 0
		}, i._fillValue = function(e, t, n) {
			a.prop("checked", !! e), n && a.trigger("change")
		}, i._onTap = function(e) {
			i._setVal(e ? 0 : 1)
		}, i.___init = function() {
			s = i.settings, a = Ee(e), n = a.parent(), n.find(".mbsc-switch-track")
				.remove(), n.prepend(a), a.attr("data-role", "switch")
				.after('<span class="mbsc-progress-cont mbsc-switch-track"><span class="mbsc-progress-track mbsc-progress-anim"><span class="mbsc-slider-handle-cont"><span class="mbsc-slider-handle mbsc-switch-handle" data-index="0"><span class="mbsc-switch-txt-off">' + s.offText + '</span><span class="mbsc-switch-txt-on">' + s.onText + "</span></span></span></span></span>"), r && r.destroy(), r = new yt(e, s), i._$track = n.find(".mbsc-progress-track"), i._min = 0, i._max = 1, i._step = 1
		}, i.___destroy = function() {
			r.destroy()
		}, i.getVal = function() {
			return e.checked
		}, i.setVal = function(e, t, a) {
			i._setVal(e ? 1 : 0, t, a)
		}, i.init(t)
	};
	Ft.prototype = {
		_class: "switch",
		_css: "mbsc-switch",
		_hasTheme: !0,
		_hasLang: !0,
		_hasDef: !0,
		_defaults: {
			stopProp: !0,
			offText: "Off",
			onText: "On"
		}
	}, he.classes.Switch = Ft, he.presetShort("switch", "Switch");
	var Ht = 0,
		Ot = "mbsc-input-wrap",
		Pt = he.instances,
		Lt = function(e, t, a) {
			function n() {
				var e = s("value", m);
				e !== b && r(e)
			}

			function s(e, t) {
				var a = o.attr(e);
				return void 0 === a || "" === a ? t : +a
			}

			function r(e, t, a, n) {
				e = Math.min(h, Math.max(e, m)), c.css("width", 100 * (e - m) / (h - m) + "%"), void 0 === a && (a = !0), void 0 === n && (n = a), (e !== b || t) && g._display(e), e !== b && (b = e, a && o.attr("value", b), n && o.trigger("change"))
			}
			var i, o, l, c, d, u, m, h, f, p, b, v, g = this;
			vt.call(this, e, t, !0), g._display = function(e) {
				v = p && f.returnAffix ? p.replace(/\{value\}/, e)
					.replace(/\{max\}/, h) : e, d && d.html(v), i && i.html(v)
			}, g._attachChange = function() {
				o.on("change", n)
			}, g.__init = function(t) {
				var a, n, r, v;
				if (f = g.settings, o = Ee(e), v = !! l, l = g._$parent, m = g._min = void 0 === t.min ? s("min", f.min) : t.min, h = g._max = void 0 === t.max ? s("max", f.max) : t.max, b = s("value", m), a = o.attr("data-val") || f.val, r = o.attr("data-step-labels"), r = r ? JSON.parse(r) : f.stepLabels, p = o.attr("data-template") || (100 != h || f.template ? f.template : "{value}%"), v ? (a && (i.remove(), l.removeClass("mbsc-progress-value-" + ("right" == a ? "right" : "left"))), r && Ee(".mbsc-progress-step-label", u)
					.remove()) : (E(l), P(o), l.find(".mbsc-input-wrap")
					.append('<span class="mbsc-progress-cont"><span class="mbsc-progress-track mbsc-progress-anim"><span class="mbsc-progress-bar"></span></span></span>'), c = g._$progress = l.find(".mbsc-progress-bar"), u = g._$track = l.find(".mbsc-progress-track")), o.attr("min", m)
					.attr("max", h), a && (i = Ee('<span class="mbsc-progress-value"></span>'), l.addClass("mbsc-progress-value-" + ("right" == a ? "right" : "left"))
					.find(".mbsc-input-wrap")
					.append(i)), r) for (n = 0; n < r.length; ++n) u.append('<span class="mbsc-progress-step-label" style="' + (f.rtl ? "right" : "left") + ": " + 100 * (r[n] - m) / (h - m) + '%" >' + r[n] + "</span>");
				d = Ee(o.attr("data-target") || f.target)
			}, g.__destroy = function() {
				l.removeClass("mbsc-ic-left mbsc-ic-right")
					.find(".mbsc-progress-cont")
					.remove(), l.find(".mbsc-input-ic")
					.remove(), o.off("change", n)
			}, g.refresh = function() {
				r(s("value", m), !0, !1)
			}, g.getVal = function() {
				return b
			}, g.setVal = function(e, t, a) {
				r(e, !0, t, a)
			}, a || g.init(t)
		};
	Lt.prototype = {
		_class: "progress",
		_css: "mbsc-progress",
		_hasTheme: !0,
		_hasLang: !0,
		_hasDef: !0,
		_defaults: {
			min: 0,
			max: 100,
			returnAffix: !0
		}
	}, he.classes.Progress = Lt, he.presetShort("progress", "Progress");
	var Et = function(e, t, a) {
		function n(e) {
			return 100 * (e - p) / (f - p)
		}

		function s(e, t) {
			var a = r.attr(e);
			return void 0 === a || "" === a ? t : "true" === a
		}
		var r, i, o, l, c, d, u, m, h, f, p, b, v, g = this;
		Lt.call(this, e, t, !0);
		var x = g.__init,
			T = g.__destroy;
		It.call(this, e, t, !0);
		var y = g.__init,
			_ = g.__destroy;
		g.__init = function(e) {
			x(e), y(e)
		}, g.__destroy = function() {
			T(), _()
		}, g._update = function(e, t, a, s, r, i, c) {
			return m ? 0 === a ? (e = Math.min(e, t[1]), o.css({
				width: n(t[1]) - n(e) + "%",
				left: h ? "auto" : n(e) + "%",
				right: h ? n(e) + "%" : "auto"
			})) : (e = Math.max(e, t[0]), o.css({
				width: n(e) - n(t[0]) + "%"
			})) : r || !d ? c.css({
				left: h ? "auto" : (s || n(e)) + "%",
				right: h ? (s || n(e)) + "%" : "auto"
			}) : o.css("width", (s || n(e)) + "%"), u && l.eq(a)
				.html(e), r || t[a] == e && !i || g._display(e), e
		}, g._readValue = function(e) {
			return +e.val()
		}, g._fillValue = function(e, t, a) {
			r.eq(t)
				.val(e), a && r.eq(t)
				.trigger("change")
		}, g.___init = function(e) {
			var t, a;
			if (i && (i.removeClass("mbsc-slider-has-tooltip"), 1 != b && Ee(".mbsc-slider-step", c)
				.remove()), i = g._$parent, c = g._$track, o = g._$progress, r = i.find("input"), v = g.settings, p = g._min, f = g._max, g._step = b = void 0 === e.step ? +r.attr("step") || v.step : e.step, g._live = s("data-live", v.live), u = s("data-tooltip", v.tooltip), d = s("data-highlight", v.highlight) && r.length < 3, m = d && 2 == r.length, h = v.rtl, u && i.addClass("mbsc-slider-has-tooltip"), 1 != b) for (a = (f - p) / b, t = 0; t <= a; ++t) c.append('<span class="mbsc-slider-step" style="' + (h ? "right" : "left") + ":" + 100 / a * t + '%"></span>');
			r.each(function(e) {
				"range" == this.type && Ee(this)
					.attr("min", p)
					.attr("max", f)
					.attr("step", b), (d ? o : c)
					.append('<span class="mbsc-slider-handle-cont' + (m && !e ? " mbsc-slider-handle-left" : "") + '"><span tabindex="0" class="mbsc-slider-handle" aria-valuemin="' + p + '" aria-valuemax="' + f + '" data-index="' + e + '"></span>' + (u ? '<span class="mbsc-slider-tooltip"></span>' : "") + "</span>")
			}), l = i.find(".mbsc-slider-tooltip")
		}, a || g.init(t)
	};
	Et.prototype = {
		_class: "progress",
		_css: "mbsc-progress mbsc-slider",
		_hasTheme: !0,
		_hasLang: !0,
		_hasDef: !0,
		_defaults: {
			changeEvent: "change",
			stopProp: !0,
			min: 0,
			max: 100,
			step: 1,
			live: !0,
			highlight: !0,
			round: !0,
			returnAffix: !0
		}
	}, he.classes.Slider = Et, he.presetShort("slider", "Slider");
	var Yt = he.util,
		jt = he.classes,
		zt = function(e, t, a) {
			function n(e, t, a) {
				if (!a) {
					G._value = G._hasValue ? G._tempValue.slice(0) : null;
					for (var n = 0; n < y.length; ++n) y[n].tempChangedColor && G._value && -1 != G._value.indexOf(y[n].tempChangedColor) && (y[n].changedColor = y[n].tempChangedColor), delete y[n].tempChangedColor
				}
				e && (G._isInput && X.val(G._hasValue ? G._tempValue : ""), _("onFill", {
					valueText: G._hasValue ? G._tempValue : "",
					change: t
				}), t && (Q = ze(!0, {}, ee), G._preventChange = !0, X.trigger("change")), m(G._value, !0))
			}

			function s(e, t) {
				return t = void 0 !== t ? t : i(e), '<div class="mbsc-color-input-item" data-color="' + (void 0 !== t ? t : e) + '" style="background: ' + e + ';">' + (P ? "" : '<div class="mbsc-color-input-item-close mbsc-ic mbsc-ic-material-close"></div>') + "</div>"
			}

			function r(e) {
				V[0].style.background = e ? Be + "linear-gradient(left, " + (x.rtl ? "#000000" : "#FFFFFF") + " 0%, " + e + " 50%, " + (x.rtl ? "#FFFFFF" : "#000000") + " 100%)" : ""
			}

			function i(e) {
				if (Object.keys(ee)
					.length && !isNaN(e)) return e;
				for (var t in y)
				if (e == y[t].color || e == y[t].changedColor) return t
			}

			function o() {
				if (O) {
					var e, t = "";
					if (Y.empty(), G._value) {
						if (P) t += s(G._value, H);
						else
 for (e = 0; e < G._value.length; ++e) t += s(G._value[e], Object.keys(ee)
							.length && ee[e].colorIndex ? ee[e].colorIndex : i(G._value[e]));
						Y.append(t), G.tap(Ee(".mbsc-color-input-item", Y), function(e) {
							if (Ee(e.target)
								.hasClass("mbsc-color-input-item-close")) {
								var t = Ee(this)
									.index();
								e.stopPropagation(), e.preventDefault(), void 0 === H && (H = Ee(e.target)
									.parent()
									.attr("data-color")), N && (Z = y[H].previewInd, $.eq(Z)
									.parent()
									.removeClass("mbsc-color-active"), Q[t] = {}, ee[t] = {}), G._value.splice(t, 1), G.setVal(G._value, !0, !0)
							} else A && "inline" !== x.display && (H = Ee(e.target)
								.attr("data-color"), isNaN(H) && (H = i(H)), H && (y[H].selected = !0, Z = y[H].previewInd, setTimeout(function() {
								w.scroll(W.eq(H), 400), N && M.scroll($.eq(Z), 400)
							}, 200)))
						})
					}
				}
			}

			function l(e, t) {
				var a, n = e.match(/\d+/gim);
				switch (!0) {
					case e.indexOf("rgb") > -1:
						a = j({
							r: n[0],
							g: n[1],
							b: n[2]
						});
						break;
					case e.indexOf("hsl") > -1:
						a = K({
							h: n[0],
							s: n[1],
							l: n[2]
						});
						break;
					case e.indexOf("hsv") > -1:
						a = q({
							h: n[0],
							s: n[1],
							v: n[2]
						});
						break;
					case e.indexOf("#") > -1:
						a = e
				}
				return c(a, t || x.format)
			}

			function c(e, t) {
				switch (t) {
					case "rgb":
						return z(e);
					case "hsl":
						return B(e);
					case "hsv":
						return U(e);
					default:
						return e
				}
			}

			function d() {
				var e;
				for (e = 0; e < x.select; ++e)
				if (void 0 === ee[e].colorIndex) return e
			}

			function u(e, t) {
				Ee(".mbsc-color-active", t)
					.removeClass("mbsc-color-active"), A && (e.parent()
					.addClass("mbsc-color-active"), N && e && void 0 !== Z && $.eq(Z)
					.parent()
					.addClass("mbsc-color-active"))
			}

			function m(e, t) {
				var a, n, s = [],
					r = 0,
					i = Ee.map(y, function(e) {
						return e.changedColor || e.color
					});
				if (P) {
					if (e = Ee.isArray(e) ? e[0] : e, n = i.indexOf(e), n > -1 && s.push(n), e && !s.length) {
						var l = +Ee(".mbsc-color-input-item", Y)
							.attr("data-color");
						isNaN(l) || s.push(l), H = l
					}
				} else if (e) if (N && A) for (var c in Q) void 0 !== Q[c].colorIndex && s.push(+Q[c].colorIndex);
				else
 for (a = 0; a < e.length; ++a)(n = i.indexOf(e[a])) > -1 && (s.push(n), i[n] = "temp" + a);
				for (a = 0; a < s.length; ++a) f(!0, s[a], r++, y[s[a]].changedColor || y[s[a]].color, !0);
				for (a = 0; a < y.length; ++a) - 1 == s.indexOf(a) && f(!1, a, void 0, y[a].changedColor || y[a].color, !1);
				if (N) for (a = r; a < x.select; ++a) ee[a] = {}, $ && $.eq(a)
					.addClass("mbsc-color-preview-item-empty")
					.css({
					background: "transparent"
				});
				Q = ze(!0, {}, ee), !1 !== t && o()
			}

			function f(e, t, a, n, s, r) {
				if (N && s && (ee[a].colorIndex = e ? t : void 0, ee[a].color = e ? n : void 0, $)) {
					var i = $.eq(a);
					i.removeClass("mbsc-color-preview-item-empty")
						.css({
						background: e ? n : "transparent"
					}), e || i.addClass("mbsc-color-preview-item-empty")
						.parent()
						.removeClass("mbsc-color-active")
				}
				r && (e ? G._tempValue.splice(a, 0, n) : G._tempValue.splice(G._tempValue.indexOf(n), 1)), W && (e ? W.eq(t)
					.addClass("mbsc-color-selected") : W.eq(t)
					.removeClass("mbsc-color-selected")
					.parent()
					.removeClass("mbsc-color-active")), y[t].previewInd = e ? a : void 0, y[t].selected = e
			}

			function p(e, t) {
				void 0 !== e && (P || y[e].selected) ? (H = e, C = y[e].changedColor || y[e].color, R = W.eq(e), A && (u(W.eq(e), t || ""), k = l(y[e].color, "hsl"), k.l = l(C, "hsl")
					.l, r(y[e].color), F.setVal(100 - k.l, !1, !1))) : A && r()
			}

			function b() {
				var e, t = [];
				for (e = 0; e < y.length; ++e) y[e].selected && t.push(y[e]);
				return t
			}

			function v(e, t) {
				var a = Ee(e.target)
					.index();
				H = ee[a].colorIndex, R = W.eq(H), Z = a, p(H, t), w.scroll(R, 250), _("onPreviewItemTap", {
					target: e.target,
					value: ee[a].color,
					index: a
				})
			}

			function g(e, t) {
				var a = !1,
					n = Ee(".mbsc-color-selected", t);
				if (R = Ee(e.target), R.hasClass("mbsc-color-clear-item")) return C = "", void G.clear();
				(P || L > +n.length || R.hasClass("mbsc-color-selected")) && he.Bgcyj && (H = R.attr("data-index"), N && (Z = void 0 !== y[H].previewInd ? y[H].previewInd : d(), a = A && R.hasClass("mbsc-color-selected") && !R.parent()
					.hasClass("mbsc-color-active"), $.length > 6 && M.scroll($.eq(Z))), C = y[H].changedColor || y[H].color, P ? (n.removeClass("mbsc-color-selected"), G._tempValue = C, C && R.toggleClass("mbsc-color-selected"), u(R, t)) : (u(R, t), a || f(!y[H].selected, H, Z, C, !0, !0)), p(H, t), G.live && (G._fillValue(), _("onSet", {
					value: G._value
				})), _("onItemTap", {
					target: e.target,
					value: C,
					selected: y[H].selected,
					index: H
				}))
			}
			var x, T, y, _, w, M, S, C, k, D, N, V, A, I, F, H, O, P, L, E, Y, W, $, R, J, G = this,
				X = Ee(e),
				Z = 0,
				Q = {}, ee = {};
			rt.call(this, e, t, !0), G.setVal = G._setVal = function(e, t, a, s) {
				G._hasValue = null !== e && void 0 !== e, G._tempValue = P ? Ee.isArray(e) ? e[0] : e : Ee.isArray(e) ? e : [e], n(t, void 0 === a ? t : a, s)
			}, G.getVal = G._getVal = function(e) {
				return G._hasValue || e ? E ? b() : G[e ? "_tempValue" : "_value"] : null
			}, G._readValue = function() {
				var e = X.val() || "";
				G._hasValue = !1, 0 !== e.length && "" !== e && (G._hasValue = !0), G._hasValue ? (G._tempValue = P ? e : "hex" == x.format ? e.split(",") : e.match(/[a-z]{3}\((\d+\.?\d{0,}?),\s*([\d.]+)%{0,},\s*([\d.]+)%{0,}\)/gim), n(!0)) : G._tempValue = [], m(G._tempValue, G._hasValue)
			}, G._fillValue = function() {
				G._hasValue = !0, n(!0, !0)
			}, G._generateContent = function() {
				var e, t, a, n = S ? 1 : 0;
				for (I = D ? Math.ceil((y.length + n) / x.rows) : x.rows, t = '<div class="mbsc-color-scroll-cont mbsc-w-p ' + (D ? "" : "mbsc-color-vertical") + '"><div class="mbsc-color-cont">' + (D ? '<div class="mbsc-color-row">' : ""), e = 0; e < y.length; ++e) a = y[e].changedColor || y[e].color, S && 0 === e && (t += '<div class="mbsc-color-item-c"><div tabindex="0" class="mbsc-color-clear-item mbsc-btn-e mbsc-color-selected"><div class="mbsc-color-clear-cross"></div></div></div>'), 0 !== e && (e + n) % I == 0 && (t += D ? '</div><div class="mbsc-color-row">' : ""), t += '<div class="mbsc-color-item-c"><div tabindex="0" data-index="' + e + '" class="mbsc-color-item mbsc-btn-e mbsc-ic mbsc-ic-material-check mbsc-color-btn-e ' + (y[e].selected ? "mbsc-color-selected" : "") + '"  style="background:' + a + '"></div>' + "</div>";
				if (t += "</div></div>" + (D ? "</div>" : ""), A && (t += '<div class="mbsc-color-slider-cont"><input class="mbsc-color-slider" type="range" data-highlight="false" value="50" min="0" max="100"/></div>'), N) {
					t += '<div class="mbsc-color-preview-cont"><div class="mbsc-color-refine-preview">';
					for (var s in Q) t += '<div class="mbsc-color-preview-item-c mbsc-btn-e mbsc-color-btn-e" tabindex="0"><div class="mbsc-color-preview-item ' + (Q[s].color ? "" : "mbsc-color-preview-item-empty") + '" style="background: ' + (Q[s].color || "initial") + ';"></div></div>';
					t += "</div></div>"
				}
				return t
			}, G._position = function(e) {
				var t, a;
				D || (t = e.find(".mbsc-color-cont"), a = Math.ceil(t.find(".mbsc-color-item-c")[0].offsetWidth), t.width(Math.min(Math.floor(e.find(".mbsc-fr-c")
					.width() / a), Math.round(y.length / x.rows)) * a + 1)), w && w.refresh(), M && M.refresh()
			}, G._markupInserted = function(e) {
				D || e.find(".mbsc-color-scroll-cont")
					.css("max-height", e.find(".mbsc-color-item-c")[0].offsetHeight * x.rows), w = new ot(e.find(".mbsc-color-scroll-cont")[0], {
					axis: D ? "X" : "Y",
					rtl: x.rtl,
					elastic: 60,
					stopProp: !1,
					mousewheel: x.mousewheel,
					onBtnTap: function(t) {
						g(t, e)
					}
				})
			}, G._attachEvents = function(e) {
				var t;
				W = Ee(".mbsc-color-item", e), e.on("keydown", ".mbsc-color-btn-e", function(t) {
					t.stopPropagation(), 32 == t.keyCode && (t.target.classList.contains("mbsc-color-item") ? g(t, e) : v(t, e))
				}), N && ($ = Ee(".mbsc-color-preview-item", e)), A && (e.addClass("mbsc-color-refine"), J = Ee(".mbsc-color-slider", e), F = new jt.Slider(J[0], {
					theme: x.theme,
					rtl: x.rtl
				}), V = e.find(".mbsc-progress-track"), H && G._value && p(H, e), J.on("change", function() {
					void 0 !== H && (P || y[H].selected) && (k.l = 100 - this.value, t = l(k.toString())
						.toString(), P ? G._tempValue = t : G._tempValue[void 0 !== Z ? Z : G._tempValue.length] = t, y[H].tempChangedColor = t, W.eq(H)
						.css("background", t), N && (ee[Z].color = t, $.eq(Z)
						.removeClass("mbsc-color-preview-item-empty")
						.css({
						background: t
					})), G.live && h(G._fillValue()))
				})), N && (M = new ot(e.find(".mbsc-color-preview-cont")[0], {
					axis: "X",
					rtl: x.rtl,
					mousewheel: x.mousewheel,
					onBtnTap: function(t) {
						v(t, e)
					}
				}))
			}, G._detachEvents = function() {
				w && w.destroy(), F && F.destroy(), M && M.destroy()
			}, G.__processSettings = function() {
				var t, a;
				if (x = G.settings, _ = G.trigger, D = "horizontal" == x.navigation, G._value = [], G._tempValue = [], P = "single" == x.select, S = void 0 !== x.clear ? x.clear : P, a = x.data || [], !a.length) switch (x.format) {
					case "rgb":
						a = ["rgb(255,235,60)", "rgb(255,153,0)", "rgb(244,68,55)", "rgb(234,30,99)", "rgb(156,38,176)", "rgb(104,58,183)", "rgb(63,81,181)", "rgb(33,150,243)", "rgb(0,151,136)", "rgb(75,175,79)", "rgb(126,93,78)", "rgb(158,158,158)"], S && a.splice(10, 0, "rgb(83, 71, 65)");
						break;
					case "hsl":
						a = ["hsl(54,100%,62%)", "hsl(36,100%,50%)", "hsl(4,90%,59%)", "hsl(340,83%,52%)", "hsl(291,64%,42%)", "hsl(262,52%,47%)", "hsl(231,48%,48%)", "hsl(207,90%,54%)", "hsl(174,100%,30%)", "hsl(122,40%,49%)", "hsl(19,24%,40%)", "hsl(0,0%,62%)"], S && a.splice(10, 0, "hsl(20, 12%, 29%)");
						break;
					default:
						a = ["#ffeb3c", "#ff9900", "#f44437", "#ea1e63", "#9c26b0", "#683ab7", "#3f51b5", "#2196f3", "#009788", "#4baf4f", "#7e5d4e", "#9e9e9e"], S && a.splice(10, 0, "#534741")
				}
				if (A = "refine" == x.mode, N = !isNaN(x.select), L = isNaN(x.select) ? P ? 2 : a.length : x.select, E = Ee.isPlainObject(a[0]), N && !Object.keys(Q)
					.length) for (t = 0; t < x.select; ++t) Q[t] = {}, ee[t] = {};
				if (!y) for (y = a.slice(0), t = 0; t < y.length; ++t) Ee.isPlainObject(a[t]) ? y[t].color = a[t].color : (a[t] = a[t].toLowerCase(), y[t] = {
					key: t,
					name: a[t],
					color: a[t]
				});
				T = x.defaultValue || y[0].color, C = T, k = l(C, "hsl"), (O = x.enhance && X.is("input")) && (X.hasClass("mbsc-color-input-hdn") ? Y = X.prev() : (Y = Ee("<div " + (e.placeholder ? 'data-placeholder="' + e.placeholder + '"' : "") + ' class="mbsc-control mbsc-color-input ' + (x.inputClass || "") + '" readonly ></div>'), Y.insertBefore(X), X.addClass("mbsc-color-input-hdn")
					.attr("tabindex", -1)), x.anchor = Y, G.attachShow(Y))
			}, G.__init = function() {
				x.cssClass = (x.cssClass || "") + " mbsc-color"
			}, G.__destroy = function() {
				O && (X.removeClass("mbsc-color-input-hdn"), Y.remove())
			}, a || G.init(t)
		};
	zt.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_class: "color",
		_defaults: ze({}, jt.Frame.prototype._defaults, {
			headerText: !1,
			validate: o,
			parseValue: o,
			enhance: !0,
			rows: 2,
			select: "single",
			format: "hex",
			navigation: "horizontal"
		})
	}, he.classes.Color = zt, he.themes.color = he.themes.frame, he.presetShort("color", "Color", !1), Yt.color = {
		hsv2hex: q,
		hsv2rgb: W,
		rgb2hsv: $,
		rgb2hex: j,
		rgb2hsl: R,
		hex2rgb: z,
		hex2hsv: U,
		hex2hsl: B
	}, ["date", "time", "datetime"].forEach(function(e) {
		he.presetShort(e)
	});
	var Wt = {
		eventBubble: !0,
		labelsShort: ["Yrs", "Mths", "Days", "Hrs", "Mins", "Secs"],
		eventText: "event",
		eventsText: "events"
	};
	he.presetShort("eventcalendar"), he.presets.scroller.eventcalendar = function(e) {
		function t(e) {
			var t = g.labelsShort,
				a = Math.abs(e) / 1e3,
				n = a / 60,
				s = n / 60,
				r = s / 24,
				i = r / 365;
			return a < 45 && Math.round(a) + " " + t[5].toLowerCase() || n < 45 && Math.round(n) + " " + t[4].toLowerCase() || s < 24 && Math.round(s) + " " + t[3].toLowerCase() || r < 30 && Math.round(r) + " " + t[2].toLowerCase() || r < 365 && Math.round(r / 30) + " " + t[1].toLowerCase() || Math.round(i) + " " + t[0].toLowerCase()
		}

		function a(e) {
			return e.sort(function(e, t) {
				var a = e.d || e.start,
					n = t.d || t.start,
					s = a.getTime ? e.start && e.end && e.start.toDateString() !== e.end.toDateString() ? 1 : a.getTime() : 0,
					r = n.getTime ? t.start && t.end && t.start.toDateString() !== t.end.toDateString() ? 1 : n.getTime() : 0;
				return s == r ? e.text > t.text ? 1 : -1 : s - r
			})
		}

		function n(e) {
			var t, a = Ee(".mbsc-cal-c", c)[0].offsetHeight,
				n = Ee(e),
				s = e.offsetHeight,
				r = e.offsetWidth,
				i = n.offset()
					.top - Ee(".mbsc-cal-c", c)
					.offset()
					.top,
				o = n.closest(".mbsc-cal-row")
					.index() < 2;
			t = getComputedStyle(d.addClass("mbsc-cal-events-t")
				.css({
				top: o ? i + s : "0",
				bottom: o ? "0" : a - i
			})
				.addClass("mbsc-cal-events-v")[0])
				.height, d.css(o ? "bottom" : "top", "auto")
				.removeClass("mbsc-cal-events-t"), u.css("max-height", t), f.refresh(), f.scroll(0), o ? d.addClass("mbsc-cal-events-b") : d.removeClass("mbsc-cal-events-b"), Ee(".mbsc-cal-events-arr", d)
				.css("left", n.offset()
				.left - d.offset()
				.left + r / 2)
		}

		function s(a, s, r) {
			if (a) {
				var i, o, l, c, u, b = '<ul class="mbsc-cal-event-list">';
				h = r, Ee.each(a, function(e, a) {
					c = a.d || a.start, u = a.start && a.end && a.start.toDateString() !== a.end.toDateString(), l = a.color, i = "", o = "", c.getTime && (i = w((u ? "MM d yy " : "") + g.timeFormat, c)), a.end && (o = w((u ? "MM d yy " : "") + g.timeFormat, a.end)), b += '<li role="button" aria-label="' + a.text + (i ? ", " + g.fromText + " " + i : "") + (o ? ", " + g.toText + " " + o : "") + '" class="mbsc-cal-event"><div class="mbsc-cal-event-color" style="' + (l ? "background:" + l + ";" : "") + '"></div><div class="mbsc-cal-event-text">' + (c.getTime && !u ? '<div class="mbsc-cal-event-time">' + w(g.timeFormat, c) + "</div>" : "") + a.text + "</div>" + (a.start && a.end ? '<div class="mbsc-cal-event-dur">' + t(a.end - a.start) + "</div>" : "") + "</li>"
				}), b += "</ul>", m.html(b), e.trigger("onEventBubbleShow", {
					target: h,
					eventList: d[0]
				}), n(h), e.tap(Ee(".mbsc-cal-event", m), function(t) {
					f.scrolled || e.trigger("onEventSelect", {
						domEvent: t,
						event: a[Ee(this)
							.index()],
						date: s
					})
				}), p = !0
			}
		}

		function r() {
			d && d.removeClass("mbsc-cal-events-v"), h = null, p = !1
		}

		function i() {
			r(), e.redraw()
		}

		function o(e) {
			return _(e.getFullYear(), e.getMonth(), e.getDate())
		}
		var l, c, d, u, m, h, f, p, b, v = ze({}, e.settings),
			g = ze(e.settings, Wt, v),
			x = 0,
			T = ze(!0, [], g.data);
		return Ee.each(T, function(e, t) {
			void 0 === t._id && (t._id = x++)
		}), l = pt.call(this, e), e._onSelectShow = function() {
			r()
		}, e._onGenMonth = function(t, a) {
			b = e._prepareObj(T, t, a)
		}, e._getDayProps = function(e) {
			var t = b[e],
				a = {
					events: t
				};
			return g.marked || g.labels || (t ? (a.background = t[0] && t[0].background, a.marked = t, a.markup = g.showEventCount ? '<div class="mbsc-cal-txt">' + t.length + " " + (t.length > 1 ? g.eventsText : g.eventText) + "</div>" : '<div class="mbsc-cal-marks"><div class="mbsc-cal-mark"></div></div>') : a.markup = ""), a
		}, e.addEvent = function(e) {
			var t = [];
			return e = ze(!0, [], Ee.isArray(e) ? e : [e]), Ee.each(e, function(e, a) {
				void 0 === a._id && (a._id = x++), T.push(a), t.push(a._id)
			}), i(), t
		}, e.removeEvent = function(e) {
			e = Ee.isArray(e) ? e : [e], Ee.each(e, function(e, t) {
				Ee.each(T, function(e, a) {
					if (a._id === t) return T.splice(e, 1), !1
				})
			}), i()
		}, e.getEvents = function(t) {
			var n;
			return t ? (t.setHours(0, 0, 0, 0), n = e._prepareObj(T, t.getFullYear(), t.getMonth()), n[t] ? a(n[t]) : []) : ze(!0, [], T)
		}, e.setEvents = function(e) {
			var t = [];
			return T = ze(!0, [], e), Ee.each(T, function(e, a) {
				void 0 === a._id && (a._id = x++), t.push(a._id)
			}), i(), t
		}, ze({}, l, {
			outerMonthChange: !1,
			headerText: !1,
			buttons: "inline" !== g.display ? ["close"] : g.buttons,
			onMarkupReady: function(t) {
				l.onMarkupReady.call(this, t), c = Ee(t.target), d = Ee('<div class="mbsc-cal-events ' + (g.eventBubbleClass || "") + '"><div class="mbsc-cal-events-arr"></div><div class="mbsc-cal-events-i"><div class="mbsc-cal-events-sc"></div></div></div>')
					.appendTo(Ee(".mbsc-cal-c", c)), u = Ee(".mbsc-cal-events-i", d), m = Ee(".mbsc-cal-events-sc", d), f = new ot(u[0]), p = !1, e.tap(u, function() {
					f.scrolled || r()
				})
			},
			onMonthChange: function() {
				r()
			},
			onDayChange: function(e) {
				var t = o(e.date),
					n = e.target,
					i = e.events,
					l = g.eventBubble && h !== n;
				r(), i && a(i), l && s(i, t, n)
			},
			onPosition: function(e) {
				l.onPosition.call(this, e), p && n(h)
			},
			onHide: function() {
				l.onHide.call(this), f && f.destroy()
			}
		})
	};
	var $t = he.classes,
		Rt = function(e, t) {
			var a = "",
				n = Ee(e),
				s = this,
				r = s.settings;
			We.call(this, e, t, !0), s._init = function() {
				var e = r.context,
					t = Ee(e),
					s = t.find(".mbsc-ms-top .mbsc-ms"),
					i = t.find(".mbsc-ms-bottom .mbsc-ms"),
					o = {};
				"body" == e ? Ee("body,html")
					.addClass("mbsc-page-ctx") : t.addClass("mbsc-page-ctx"), a && n.removeClass(a), s.length && (o.paddingTop = s[0].offsetHeight), i.length && (o.paddingBottom = i[0].offsetHeight), a = "mbsc-page mbsc-" + r.theme + (r.baseTheme ? " mbsc-" + r.baseTheme : "") + (r.rtl ? " mbsc-rtl" : " mbsc-ltr"), n.addClass(a)
					.css(o)
			}, s._destroy = function() {
				n.removeClass(a)
			}, r = s.settings, s.init(t)
		};
	Rt.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_class: "page",
		_defaults: {
			context: "body"
		}
	}, $t.Page = Rt, he.themes.page.mobiscroll = {}, he.presetShort("page", "Page"), Ae && Ee(function() {
		Ee("[mbsc-page]")
			.each(function() {
			new Rt(this)
		}), Ee(document)
			.on("mbsc-enhance", function(e, t) {
			Ee(e.target)
				.is("[mbsc-page]") ? new Rt(e.target, t) : Ee("[mbsc-page]", e.target)
				.each(function() {
				new Rt(this, t)
			})
		})
	});
	var Jt = function(e, t, a) {
		function n(e) {
			!Ee(".mbsc-fr-c", e)
				.hasClass("mbsc-wdg-c") && he.Bgcyj && (Ee(".mbsc-fr-c", e)
				.addClass("mbsc-wdg-c")
				.append(o.show()), Ee(".mbsc-w-p", e)
				.length || Ee(".mbsc-fr-c", e)
				.addClass("mbsc-w-p"))
		}
		var s, r, i, o = Ee(e),
			l = this;
		rt.call(this, e, t, !0), l._generateContent = function() {
			return ""
		}, l._markupReady = function(e) {
			"inline" != s.display && n(e)
		}, l._markupInserted = function(e) {
			"inline" == s.display && n(e), e.trigger("mbsc-enhance", [{
				theme: s.theme,
				lang: s.lang
			}])
		}, l._markupRemove = function() {
			o.hide(), r ? r.prepend(o) : i.after(o)
		}, l.__processSettings = function() {
			s = l.settings, l.buttons.ok = {
				text: s.okText,
				icon: s.okIcon,
				handler: "set"
			}, s.buttons = s.buttons || ("inline" == s.display ? [] : ["ok"]), r || i || (i = o.prev(), i.length || (r = o.parent())), o.hide()
		}, l.__init = function() {
			s.cssClass = (s.cssClass || "") + " mbsc-wdg"
		}, a || l.init(t)
	};
	Jt.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasContent: !0,
		_hasLang: !0,
		_class: "widget",
		_defaults: ze({}, rt.prototype._defaults, {
			okText: "OK",
			headerText: !1
		})
	}, he.classes.Widget = Jt, he.themes.widget = he.themes.frame, he.presetShort("widget", "Widget", !1);
	var Bt = Ae && !! window.Promise,
		Kt = [],
		qt = [];
	he.alert = function(e) {
		var t = document.createElement("div");
		return t.innerHTML = Q(e), re(ee, t, e)
	}, he.confirm = function(e) {
		var t = document.createElement("div");
		return t.innerHTML = Q(e), re(te, t, e)
	}, he.prompt = function(e) {
		var t = document.createElement("div");
		return t.innerHTML = Q(e) + '<label class="mbsc-input">' + (e.label ? '<span class="mbsc-label">' + e.label + "</span>" : "") + '<input tabindex="0" type="' + (e.inputType || "text") + '" placeholder="' + (e.placeholder || "") + '" value="' + (e.value || "") + '"></label>', re(ae, t, e)
	}, he.snackbar = function(e) {
		var t = document.createElement("div");
		return t.innerHTML = '<div class="mbsc-snackbar-cont"><div class="mbsc-snackbar-msg">' + (e.message || "") + "</div>" + (e.button ? '<button class="mbsc-snackbar-btn mbsc-btn mbsc-btn-flat">' + (e.button.text || "") + "</button>" : "") + "</div>", re(ne, t, e)
	}, he.toast = function(e) {
		var t = document.createElement("div");
		return t.innerHTML = '<div class="mbsc-toast-msg">' + (e.message || "") + "</div>", re(se, t, e)
	};
	var Ut = "ios" == Ce && De > 7,
		Gt = he.instances,
		Xt = function(e, t) {
			function a() {
				r.removeClass("mbsc-no-touch")
			}
			var n, s = "",
				r = Ee(e),
				i = {}, o = this;
			We.call(this, e, t, !0), o.refresh = function(e) {
				Y(r, i, n, e)
			}, o._init = function() {
				he.themes.form[n.theme] || (n.theme = "mobiscroll"), r.hasClass("mbsc-form") || r.on("touchstart", a)
					.show(), s && r.removeClass(s), s = "mbsc-form mbsc-no-touch mbsc-" + n.theme + (Ut ? " mbsc-form-hb" : "") + (n.baseTheme ? " mbsc-" + n.baseTheme : "") + (n.rtl ? " mbsc-rtl" : " mbsc-ltr"), r.addClass(s), o.refresh()
			}, o._destroy = function() {
				r.removeClass(s)
					.off("touchstart", a);
				for (var e in i) i[e].destroy()
			}, n = o.settings, o.init(t)
		};
	Xt.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_class: "form",
		_defaults: {
			tap: !0,
			stopProp: !0,
			lang: "en"
		}
	}, he.themes.form.mobiscroll = {}, he.classes.Form = Xt, he.presetShort("form", "Form"), Ae && Ee(function() {
		var e = "[mbsc-enhance],[mbsc-form]";
		Ee(e)
			.each(function() {
			new Xt(this)
		}), Ee(document)
			.on("mbsc-enhance", function(t, a) {
			Ee(t.target)
				.is(e) ? new Xt(t.target, a) : Ee(e, t.target)
				.each(function() {
				new Xt(this, a)
			})
		}), Ee(document)
			.on("mbsc-refresh", function(t) {
			var a;
			Ee(t.target)
				.is(e) ? (a = Gt[t.target.id]) && a.refresh() : Ee(e, t.target)
				.each(function() {
				(a = Gt[this.id]) && a.refresh()
			})
		})
	});
	var Zt = {
		invalid: [],
		showInput: !0,
		inputClass: "",
		itemSelector: "li"
	};
	he.presets.scroller.list = function(e) {
		function t(e, t, n) {
			for (var s = 0, r = []; s < e;) r[s] = a(n, s, t), s++;
			return r
		}

		function a(e, t, a) {
			for (var n, s = 0, r = a, i = []; s < t;) {
				var o = e[s];
				for (n in r)
				if (r[n].key == o) {
					r = r[n].children;
					break
				}
				s++
			}
			for (s = 0; s < r.length;) r[s].invalid && i.push(r[s].key), s++;
			return i
		}

		function n(e, t) {
			for (var a = []; e;) a[--e] = !0;
			return a[t] = !1, a
		}

		function s(e, t, a) {
			var n, s, o, l = 0,
				c = [
					[]
				],
				d = M;
			if (t) for (n = 0; n < t; n++) v ? c[0][n] = {} : c[n] = [{}];
			for (; l < e.length;) {
				for (v ? c[0][l] = i(d, S[l]) : c[l] = [i(d, S[l])], n = 0, o = void 0; n < d.length && void 0 === o;) d[n].key == e[l] && (void 0 !== a && l <= a || void 0 === a) && (o = n), n++;
				if (void 0 !== o && d[o].children) l++, d = d[o].children;
				else {
					if (!(s = r(d)) || !s.children) return c;
					l++, d = s.children
				}
			}
			return c
		}

		function r(e, t) {
			if (!e) return !1;
			for (var a, n = 0; n < e.length;)
			if (!(a = e[n++])
				.invalid) return t ? n - 1 : a;
			return !1
		}

		function i(e, t) {
			for (var a = {
				data: [],
				label: t
			}, n = 0; n < e.length;) a.data.push({
				value: e[n].key,
				display: e[n].value
			}), n++;
			return a
		}

		function o(t) {
			e._isVisible && Ee(".mbsc-sc-whl-w", e._markup)
				.css("display", "")
				.slice(t)
				.hide()
		}

		function l(e, t) {
			var a, n, s, i = [],
				o = M,
				l = 0,
				c = !1;
			if (void 0 !== e[l] && l <= t) for (a = 0, n = e[l], s = void 0; a < o.length && void 0 === s;) o[a].key != e[l] || o[a].invalid || (s = a), a++;
			else s = r(o, !0), n = o[s].key;
			for (c = void 0 !== s && o[s].children, i[l] = n; c;) {
				if (o = o[s].children, l++, c = !1, s = void 0, void 0 !== e[l] && l <= t) for (a = 0, n = e[l], s = void 0; a < o.length && void 0 === s;) o[a].key != e[l] || o[a].invalid || (s = a), a++;
				else s = r(o, !0), s = !1 === s ? void 0 : s, n = o[s].key;
				c = !(void 0 === s || !r(o[s].children)) && o[s].children, i[l] = n
			}
			return {
				lvl: l + 1,
				nVector: i
			}
		}

		function c(t) {
			var a = [];
			return y = y > _++ ? y : _, (t.length > 1 ? t : t.children(p.itemSelector))
				.each(function(t) {
				var n = Ee(this),
					s = n.clone();
				s.children("ul,ol")
					.remove(), s.children(p.itemSelector)
					.remove();
				var r = e._processMarkup ? e._processMarkup(s) : s.html()
					.replace(/^\s\s*/, "")
					.replace(/\s\s*$/, ""),
					i = !! n.attr("data-invalid"),
					o = {
						key: void 0 === n.attr("data-val") || null === n.attr("data-val") ? t : n.attr("data-val"),
						value: r,
						invalid: i,
						children: null
					}, l = "li" === p.itemSelector ? n.children("ul,ol") : n.children(p.itemSelector);
				l.length && (o.children = c(l)), a.push(o)
			}), _--, a
		}

		function d(t, a, n) {
			var r, i = (a || 0) + 1,
				l = [],
				c = {}, d = {};
			for (c = s(t, null, a), r = 0; r < t.length; r++) e._tempWheelArray[r] = t[r] = n.nVector[r] || 0;
			for (; i < n.lvl;) d[i] = v ? c[0][i] : c[i][0], l.push(i++);
			o(n.lvl), w = t.slice(0), l.length && (m = !0, e.changeWheel(d))
		}
		var u, m, h, f = ze({}, e.settings),
			p = ze(e.settings, Zt, f),
			b = p.layout || (/top|bottom/.test(p.display) ? "liquid" : ""),
			v = "liquid" == b,
			g = p.readonly,
			x = Ee(this),
			T = this.id + "_dummy",
			y = 0,
			_ = 0,
			w = [],
			M = p.wheelArray || c(x),
			S = function(e) {
				var t, a = [];
				for (t = 0; t < e; t++) a[t] = p.labels && p.labels[t] ? p.labels[t] : t;
				return a
			}(y),
			C = function(e) {
				for (var t, a = [], n = e, s = !0, i = 0; s;) t = r(n), a[i++] = t.key, (s = t.children) && (n = s);
				return a
			}(M),
			k = s(C, y);
		return Ee("#" + T)
			.remove(), p.input ? u = Ee(p.input) : p.showInput && (u = Ee('<input type="text" id="' + T + '" value="" class="' + p.inputClass + '" placeholder="' + (p.placeholder || "") + '" readonly />')
			.insertBefore(x)), u && e.attachShow(u), p.wheelArray || x.hide(), {
			wheels: k,
			anchor: u,
			layout: b,
			headerText: !1,
			setOnTap: 1 == y,
			formatValue: function(e) {
				return void 0 === h && (h = l(e, e.length)
					.lvl), e.slice(0, h)
					.join(" ")
			},
			parseValue: function(e) {
				return e ? (e + "")
					.split(" ") : (p.defaultValue || C)
					.slice(0)
			},
			onBeforeShow: function() {
				var t = e.getArrayVal(!0);
				w = t.slice(0), p.wheels = s(t, y, y), m = !0
			},
			onWheelGestureStart: function(e) {
				p.readonly = n(y, e.index)
			},
			onWheelAnimationEnd: function(t) {
				var a = t.index,
					n = e.getArrayVal(!0),
					s = l(n, a);
				h = s.lvl, p.readonly = g, n[a] != w[a] && d(n, a, s)
			},
			onFill: function(e) {
				h = void 0, u && u.val(e.valueText)
			},
			validate: function(e) {
				var a = e.values,
					n = e.index,
					s = l(a, a.length);
				return h = s.lvl, void 0 === n && (o(s.lvl), m || d(a, n, s)), m = !1, {
					disabled: t(h, M, a)
				}
			},
			onDestroy: function() {
				u && Ee("#" + T)
					.remove(), x.show()
			}
		}
	};
	var Qt = he.presets.scroller;
	he.presetShort("image"), Qt.image = function(e) {
		return e.settings.enhance && (e._processMarkup = function(e) {
			var t = e.attr("data-icon");
			return e.children()
				.each(function(e, t) {
				t = Ee(t), t.is("img") ? Ee('<div class="mbsc-img-c"></div>')
					.insertAfter(t)
					.append(t.addClass("mbsc-img")) : t.is("p") && t.addClass("mbsc-img-txt")
			}), t && e.prepend('<div class="mbsc-ic mbsc-ic-' + t + '"></div'), e.html('<div class="mbsc-img-w">' + e.html() + "</div>"), e.html()
		}), Qt.list.call(this, e)
	};
	var ea, ta = he.classes,
		aa = 1,
		na = "transparent",
		sa = function(e, t) {
			function a() {
				Mt = !1, bt = !1, ee = 0, Ft = 0, Ht = new Date, Qe = ie.width(), ce = E(ie), at = ce.index(et), tt = et[0].offsetHeight, ia = et[0].offsetTop, Rt = Jt[et.attr("data-type") || "defaults"], It = Rt.stages
			}

			function n(e) {
				var t;
				"touchstart" === e.type && (vt = !0, clearTimeout(gt)), !C(e, this) || X || sa || ea || da || !he.Bgcyj || (X = !0, te = !0, Ot = v(e, "X"), Pt = v(e, "Y"), ve = 0, ge = 0, et = Ee(this), t = et, a(), zt = kt.onItemTap || Rt.tap || et.hasClass("mbsc-lv-parent") || et.hasClass("mbsc-lv-back"), rt = et.offset()
					.top, zt && (Q = setTimeout(function() {
					t.addClass("mbsc-lv-item-active"), Ce("onItemActivate", {
						target: t[0],
						domEvent: e
					})
				}, 120)), Zt.sortable && !et.hasClass("mbsc-lv-back") && (Zt.sortable.group || (ft = et.nextUntil(".mbsc-lv-gr-title")
					.filter(".mbsc-lv-item"), xt = et.prevUntil(".mbsc-lv-gr-title")
					.filter(".mbsc-lv-item")), ct = (Zt.sortable.group ? ie.children(st)
					.eq(0) : xt.length ? xt.eq(-1) : et)[0].offsetTop - ia, lt = (Zt.sortable.group ? ie.children(st)
					.eq(-1) : ft.length ? ft.eq(-1) : et)[0].offsetTop - ia, Zt.sortable.handle ? Ee(e.target)
					.hasClass("mbsc-lv-handle") && (clearTimeout(Q), "Moz" === Ke ? (e.preventDefault(), u()) : $t = setTimeout(function() {
					u()
				}, 100)) : $t = setTimeout(function() {
					ke.appendTo(et), ke[0].style[Ke + "Animation"] = "mbsc-lv-fill " + (kt.sortDelay - 100) + "ms linear", clearTimeout(we), clearTimeout(Q), te = !1, $t = setTimeout(function() {
						ke[0].style[Ke + "Animation"] = "", u()
					}, kt.sortDelay - 80)
				}, 80)), "mousedown" == e.type && Ee(document)
					.on("mousemove", s)
					.on("mouseup", r))
			}

			function s(e) {
				var t = !1,
					a = !0;
				if (X) if (Me = v(e, "X"), Se = v(e, "Y"), ve = Me - Ot, ge = Se - Pt, clearTimeout(we), ye || Et || Dt || et.hasClass("mbsc-lv-back") || (Math.abs(ge) > 10 ? (Dt = !0, r(ze({}, e, {
					type: "mousemove" == e.type ? "mouseup" : "touchend"
				})), clearTimeout(Q)) : Math.abs(ve) > 7 && i()), Et) e.preventDefault(), ee = ve / Qe * 100, l();
				else if (ye) {
					e.preventDefault();
					var n, s = qt.scrollTop(),
						o = Math.max(ct, Math.min(ge + Gt, lt)),
						c = Ie ? rt - Xt + s - Gt : rt;
					Ut + s < c + o + tt ? (qt.scrollTop(c + o - Ut + tt), n = !0) : c + o < s && (qt.scrollTop(c + o), n = !0), n && (Gt += qt.scrollTop() - s), mt && (Zt.sortable.multiLevel && ut.hasClass("mbsc-lv-parent") ? ia + tt / 4 + o > mt ? t = !0 : ia + tt - tt / 4 + o > mt && (xe = ut.addClass("mbsc-lv-item-hl"), a = !1) : ia + tt / 2 + o > mt && (ut.hasClass("mbsc-lv-back") ? Zt.sortable.multiLevel && (Te = ut.addClass("mbsc-lv-item-hl"), a = !1) : t = !0), t && (Tt.insertAfter(ut), yt = ut, ut = z(ut, "next"), _t = mt, mt = ut.length && ut[0].offsetTop, re++)), !t && _t && (Zt.sortable.multiLevel && yt.hasClass("mbsc-lv-parent") ? ia + tt - tt / 4 + o < _t ? t = !0 : ia + tt / 4 + o < _t && (xe = yt.addClass("mbsc-lv-item-hl"), a = !1) : ia + tt / 2 + o < _t && (yt.hasClass("mbsc-lv-back") ? Zt.sortable.multiLevel && (Te = yt.addClass("mbsc-lv-item-hl"), a = !1) : t = !0), t && (Tt.insertBefore(yt), ut = yt, yt = z(yt, "prev"), mt = _t, _t = yt.length && yt[0].offsetTop + yt[0].offsetHeight, re--)), a && (xe && (xe.removeClass("mbsc-lv-item-hl"), xe = !1), Te && (Te.removeClass("mbsc-lv-item-hl"), Te = !1)), t && Ce("onSortChange", [et, re]), N(et, o), Ce("onSort", [et, re])
				} else(Math.abs(ve) > 5 || Math.abs(ge) > 5) && V()
			}

			function r(e) {
				var t, a, n, i = et;
				X && (X = !1, V(), "mouseup" == e.type && Ee(document)
					.off("mousemove", s)
					.off("mouseup", r), Dt || (gt = setTimeout(function() {
					vt = !1
				}, 300)), (Et || Dt || ye) && (bt = !0), Et ? c() : ye ? (n = ie, xe ? (H(et.detach()), a = ca[xe.attr("data-ref")], re = E(a.child)
					.length, xe.removeClass("mbsc-lv-item-hl"), kt.navigateOnDrop ? K(xe, function() {
					Zt.add(null, et, null, null, xe, !0), J(et), m(et, at, n, !0)
				}) : (Zt.add(null, et, null, null, xe, !0), m(et, at, n, !0))) : Te ? (H(et.detach()), a = ca[Te.attr("data-back")], re = E(a.parent)
					.index(a.item) + 1, Te.removeClass("mbsc-lv-item-hl"), kt.navigateOnDrop ? K(Te, function() {
					Zt.add(null, et, re, null, ie, !0), J(et), m(et, at, n, !0)
				}) : (Zt.add(null, et, re, null, a.parent, !0), m(et, at, n, !0))) : (t = Tt[0].offsetTop - ia, N(et, t, 6 * Math.abs(t - Math.max(ct, Math.min(ge + Gt, lt))), function() {
					H(et), et.insertBefore(Tt), m(et, at, n, re !== at)
				})), ye = !1) : !Dt && Math.abs(ve) < 5 && Math.abs(ge) < 5 && (Rt.tap && Rt.tap.call(Qt, {
					target: et,
					index: at,
					domEvent: e
				}, Zt), zt && ("touchend" === e.type && p(), et.addClass("mbsc-lv-item-active"), Ce("onItemActivate", {
					target: et[0],
					domEvent: e
				})), !1 !== Ce("onItemTap", {
					target: et[0],
					index: at,
					domEvent: e
				}) && K(et)), clearTimeout(Q), setTimeout(function() {
					i.removeClass("mbsc-lv-item-active"), Ce("onItemDeactivate", {
						target: i[0]
					})
				}, 100), Dt = !1, de = null)
			}

			function i() {
				(Et = O(Rt.swipe, {
					target: et[0],
					index: at,
					direction: ve > 0 ? "right" : "left"
				})) && (V(), clearTimeout(Q), Rt.actions ? (Z = R(Rt, ve), dt.html(Rt.icons)
					.show()
					.children()
					.css("width", Z + "%"), Xe.hide(), Ee(".mbsc-lv-ic-m", Ze)
					.removeClass("mbsc-lv-ic-disabled"), Ee(Rt.leftMenu)
					.each(y), Ee(Rt.rightMenu)
					.each(y)) : (Xe.show(), dt.hide(), ue = Rt.start + (ve > 0 ? 0 : 1), wt = It[ue - 1], ht = It[ue]), et.addClass("mbsc-lv-item-swiping")
					.removeClass("mbsc-lv-item-active"), Wt.css("line-height", tt + "px"), Ze.css({
					top: ia,
					height: tt,
					backgroundColor: W(ve)
				})
					.addClass("mbsc-lv-stage-c-v")
					.appendTo(ie.parent()), kt.iconSlide && et.append(Xe), Ce("onSlideStart", {
					target: et[0],
					index: at
				}))
			}

			function l() {
				var e = !1;
				Ct || (Rt.actions ? Ze.attr("class", "mbsc-lv-stage-c-v mbsc-lv-stage-c mbsc-lv-" + (ee < 0 ? "right" : "left")) : (wt && ee <= wt.percent ? (ue--, ht = wt, wt = It[ue], e = !0) : ht && ee >= ht.percent && (ue++, wt = ht, ht = It[ue], e = !0), e && (de = ee > 0 ? wt : ht) && (A(de, kt.iconSlide), Ce("onStageChange", {
					target: et[0],
					index: at,
					stage: de
				}))), Nt || (Ct = !0, St = He(M)))
			}

			function c(e) {
				var t, a, n, s = !1;
				Oe(St), Ct = !1, Nt || M(), Rt.actions ? Math.abs(ee) > 10 && Z && (D(et, ee < 0 ? -Z : Z, 200), s = !0, ea = !0, ae = et, ne = at, Ee(document)
					.on("touchstart.mbsc-lv-conf mousedown.mbsc-lv-conf", function(t) {
					t.preventDefault(), S(et, !0, e)
				})) : ee && (kt.quickSwipe && !Nt && (n = new Date - Ht, t = n < 300 && ve < -50, a = n < 300 && ve > 50, t ? (Mt = !0, de = Rt.left, A(de, kt.iconSlide)) : a && (Mt = !0, de = Rt.right, A(de, kt.iconSlide))), de && de.action && ((be = O(de.disabled, {
					target: et[0],
					index: at
				})) || (s = !0, ea = Nt || O(de.confirm, {
					target: et[0],
					index: at
				}), ea ? (D(et, (ee < 0 ? -1 : 1) * Xe[0].offsetWidth * 100 / Qe, 200, !0), w(de, et, at, !1, e)) : _(de, et, at, e)))), s || S(et, !0, e), Et = !1
			}

			function u() {
				ye = !0, xe = !1, Te = !1, Gt = 0, re = at, kt.vibrate && f(), ut = z(et, "next"), mt = ut.length && ut[0].offsetTop, yt = z(et, "prev"), _t = yt.length && yt[0].offsetTop + yt[0].offsetHeight, Tt.height(tt)
					.insertAfter(et), et.css({
					top: ia
				})
					.addClass("mbsc-lv-item-dragging")
					.removeClass("mbsc-lv-item-active")
					.appendTo(_e), Ce("onSortStart", {
					target: et[0],
					index: re
				})
			}

			function m(e, t, a, n) {
				e.removeClass("mbsc-lv-item-dragging"), Tt.remove(), Ce("onSortEnd", {
					target: e[0],
					index: re
				}), kt.vibrate && f(), n && (Zt.addUndoAction(function(n) {
					Zt.move(e, t, null, n, a, !0)
				}, !0), Ce("onSortUpdate", {
					target: e[0],
					index: re
				}))
			}

			function b() {
				vt || (clearTimeout(Je), ea && Ee(document)
					.trigger("touchstart"), Ye && (Zt.close(Le, je), Ye = !1, Le = null))
			}

			function g() {
				clearTimeout(me), me = setTimeout(function() {
					Ut = qt[0].innerHeight || qt.innerHeight(), Xt = Ie ? qt.offset()
						.top : 0, X && (ia = et[0].offsetTop, tt = et[0].offsetHeight, Ze.css({
						top: ia,
						height: tt
					}))
				}, 200)
			}

			function x(e) {
				bt && (e.stopPropagation(), e.preventDefault(), bt = !1)
			}

			function T() {
				if (ye || !X) {
					var e, t = qt.scrollTop(),
						a = ta.offset()
							.top,
						n = ta[0].offsetHeight,
						s = Ie ? qt.offset()
							.top : t;
					Ee(".mbsc-lv-gr-title", ta)
						.each(function(t, a) {
						Ee(a)
							.offset()
							.top < s && (e = a)
					}), a < s && a + n > s ? Ne.show()
						.empty()
						.append(Ee(e)
						.clone()) : Ne.hide()
				}
			}

			function y(e, t) {
				O(t.disabled, {
					target: et[0],
					index: at
				}) && Ee(".mbsc-ic-" + t.icon, Ze)
					.addClass("mbsc-lv-ic-disabled")
			}

			function _(e, t, a, n) {
				var s, r = {
					icon: "undo2",
					text: kt.undoText,
					color: "#b1b1b1",
					action: function() {
						Zt.undo()
					}
				};
				e.undo && (Zt.startActionTrack(), Ee.isFunction(e.undo) && Zt.addUndoAction(function() {
					e.undo.call(Qt, {
						target: t[0],
						index: a
					}, Zt)
				}), Bt = t.attr("data-ref")), s = e.action.call(Qt, {
					target: t[0],
					index: a
				}, Zt), e.undo ? (Zt.endActionTrack(), !1 !== s && D(t, +t.attr("data-pos") < 0 ? -100 : 100, 200), Tt.height(tt)
					.insertAfter(t), t.css("top", ia)
					.addClass("mbsc-lv-item-undo"), dt.hide(), Xe.show(), Ze.append(Xe), A(r), w(r, t, a, !0, n)) : S(t, s, n)
			}

			function w(e, t, a, n, s) {
				var r, i;
				ea = !0, Ee(document)
					.off(".mbsc-lv-conf")
					.on("touchstart.mbsc-lv-conf mousedown.mbsc-lv-conf", function(e) {
					e.preventDefault(), n && F(t), S(t, !0, s)
				}), pe || Xe.off(".mbsc-lv-conf")
					.on("touchstart.mbsc-lv-conf mousedown.mbsc-lv-conf", function(e) {
					e.stopPropagation(), r = v(e, "X"), i = v(e, "Y")
				})
					.on("touchend.mbsc-lv-conf mouseup.mbsc-lv-conf", function(o) {
					o.preventDefault(), "touchend" === o.type && p(), Math.abs(v(o, "X") - r) < 10 && Math.abs(v(o, "Y") - i) < 10 && (_(e, t, a, s), n && (Kt = null, F(t)))
				})
			}

			function M() {
				D(et, Ft + 100 * ve / Qe), Ct = !1
			}

			function S(e, t, a) {
				Ee(document)
					.off(".mbsc-lv-conf"), Xe.off(".mbsc-lv-conf"), !1 !== t ? D(e, 0, "0" !== e.attr("data-pos") ? 200 : 0, !1, function() {
					I(e, a), H(e)
				}) : I(e, a), ea = !1
			}

			function D(e, t, a, n, s) {
				t = Math.max("right" == Et ? 0 : -100, Math.min(t, "left" == Et ? 0 : 100)), Lt = e[0].style, e.attr("data-pos", t), Lt[Ke + "Transform"] = "translate3d(" + (n ? Qe * t / 100 + "px" : t + "%") + ",0,0)", Lt[Ke + "Transition"] = Be + "transform " + (a || 0) + "ms", s && (sa++, setTimeout(function() {
					s(), sa--
				}, a)), ee = t
			}

			function N(e, t, a, n) {
				t = Math.max(ct, Math.min(t, lt)), Lt = e[0].style, Lt[Ke + "Transform"] = "translate3d(0," + t + "px,0)", Lt[Ke + "Transition"] = Be + "transform " + (a || 0) + "ms ease-out", n && (sa++, setTimeout(function() {
					n(), sa--
				}, a))
			}

			function V() {
				clearTimeout($t), !te && Zt.sortable && (te = !0, ke.remove())
			}

			function A(e, t) {
				var a = O(e.text, {
					target: et[0],
					index: at
				}) || "";
				O(e.disabled, {
					target: et[0],
					index: at
				}) ? Ze.addClass("mbsc-lv-ic-disabled") : Ze.removeClass("mbsc-lv-ic-disabled"), Ze.css("background-color", e.color || (0 === e.percent ? W(ee) : na)), Xe.attr("class", "mbsc-lv-ic-c mbsc-lv-ic-" + (t ? "move-" : "") + (ee < 0 ? "right" : "left")), Ge.attr("class", " mbsc-lv-ic-s mbsc-lv-ic mbsc-ic mbsc-ic-" + (e.icon || "none")), Wt.attr("class", "mbsc-lv-ic-text" + (e.icon ? "" : " mbsc-lv-ic-text-only") + (a ? "" : " mbsc-lv-ic-only"))
					.html(a || "&nbsp;"), kt.animateIcons && (Mt ? Ge.addClass("mbsc-lv-ic-v") : setTimeout(function() {
					Ge.addClass("mbsc-lv-ic-a")
				}, 10))
			}

			function I(e, t) {
				X || (Ge.attr("class", "mbsc-lv-ic-s mbsc-lv-ic mbsc-ic mbsc-ic-none"), Ze.attr("style", "")
					.removeClass("mbsc-lv-stage-c-v"), Wt.html("")), Ze.removeClass("mbsc-lv-left mbsc-lv-right"), e && (Ce("onSlideEnd", {
					target: e[0],
					index: at
				}), t && t())
			}

			function F(e) {
				e.css("top", "")
					.removeClass("mbsc-lv-item-undo"), Kt ? Zt.animate(Tt, "collapse", function() {
					Tt.remove()
				}) : Tt.remove(), I(), Bt = null, Kt = null
			}

			function H(e) {
				Lt = e[0].style, Lt[Ke + "Transform"] = "", Lt[Ke + "Transition"] = "", Lt.top = "", e.removeClass("mbsc-lv-item-swiping")
			}

			function O(e, t) {
				return Ee.isFunction(e) ? e.call(this, t, Zt) : e
			}

			function P(e) {
				var t, a = e.attr("data-role");
				if (e.attr("data-ref") || (t = aa++, e.attr("data-ref", t), ca[t] = {
					item: e,
					child: e.children(ot),
					parent: e.parent(),
					ref: e.parent()[0] === Qt ? null : e.parent()
						.parent()
						.attr("data-ref")
				}), e.addClass("list-divider" == a ? "mbsc-lv-gr-title" : "mbsc-lv-item"), Zt.sortable.handle && "list-divider" != a && !e.children(".mbsc-lv-handle-c")
					.length && e.append(Fe), kt.enhance && !e.hasClass("mbsc-lv-item-enhanced")) {
					var n = e.attr("data-icon"),
						s = e.find("img")
							.eq(0)
							.addClass("mbsc-lv-img");
					s.is(":first-child") ? e.addClass("mbsc-lv-img-" + (kt.rtl ? "right" : "left")) : s.length && e.addClass("mbsc-lv-img-" + (kt.rtl ? "left" : "right")), e.addClass("mbsc-lv-item-enhanced")
						.children()
						.each(function(e, t) {
						t = Ee(t), t.is("p, h1, h2, h3, h4, h5, h6") && t.addClass("mbsc-lv-txt")
					}), n && e.addClass("mbsc-lv-item-ic-" + (e.attr("data-icon-align") || (kt.rtl ? "right" : "left")))
						.append('<div class="mbsc-lv-item-ic mbsc-ic mbsc-ic-' + n + '"></div>')
				}
			}

			function L(e) {
				Ee(st, e)
					.not(".mbsc-lv-item")
					.each(function() {
					P(Ee(this))
				}), Ee(ot, e)
					.not(".mbsc-lv")
					.addClass("mbsc-lv")
					.prepend(qe)
					.parent()
					.addClass("mbsc-lv-parent")
					.prepend(Ue), Ee(".mbsc-lv-back", e)
					.each(function() {
					Ee(this)
						.attr("data-back", Ee(this)
						.parent()
						.parent()
						.attr("data-ref"))
				})
			}

			function E(e) {
				return e.children(st)
					.not(".mbsc-lv-back")
					.not(".mbsc-lv-removed")
					.not(".mbsc-lv-ph")
			}

			function Y(e) {
				return "object" !== (void 0 === e ? "undefined" : fe(e)) && (e = Ee(st, se)
					.filter('[data-id="' + e + '"]')), Ee(e)
			}

			function j(e) {
				for (var t = 0, a = ca[e.attr("data-ref")]; a && a.ref;) t++, a = ca[a.ref];
				return t
			}

			function z(e, t) {
				for (e = e[t](); e.length && (!e.hasClass("mbsc-lv-item") || e.hasClass("mbsc-lv-ph") || e.hasClass("mbsc-lv-item-dragging"));) {
					if (!Zt.sortable.group && e.hasClass("mbsc-lv-gr-title")) return !1;
					e = e[t]()
				}
				return e
			}

			function W(e) {
				return (e > 0 ? Rt.right : Rt.left)
					.color || na
			}

			function $(e) {
				return d(e) ? e + "" : 0
			}

			function R(e, t) {
				return +(t < 0 ? $((e.actionsWidth || 0)
					.right) || $(e.actionsWidth) || $(kt.actionsWidth.right) || $(kt.actionsWidth) : $((e.actionsWidth || 0)
					.left) || $(e.actionsWidth) || $(kt.actionsWidth.left) || $(kt.actionsWidth))
			}

			function J(e, t) {
				if (e) {
					var a = qt.scrollTop(),
						n = e.is(".mbsc-lv-item") ? e[0].offsetHeight : 0,
						s = e.offset()
							.top + (Ie ? a - Xt : 0);
					t ? (s < a || s + n > a + Ut) && qt.scrollTop(s) : s < a ? qt.scrollTop(s) : s + n > a + Ut && qt.scrollTop(Math.min(s, s + n - Ut / 2))
				}
			}

			function B(e, t, a, n, s) {
				var r = t.parent(),
					i = t.prev();
				n = n || o, i[0] === Xe[0] && (i = Xe.prev()), ie[0] !== t[0] ? (Ce("onNavStart", {
					level: ra,
					direction: e,
					list: t[0]
				}), Vt.prepend(t.addClass("mbsc-lv-v mbsc-lv-sl-new")), J(se), q(Vt, "mbsc-lv-sl-" + e, function() {
					ie.removeClass("mbsc-lv-sl-curr"), t.removeClass("mbsc-lv-sl-new")
						.addClass("mbsc-lv-sl-curr"), oe && oe.length ? ie.removeClass("mbsc-lv-v")
						.insertAfter(oe) : le.append(ie.removeClass("mbsc-lv-v")), oe = i, le = r, ie = t, J(a, s), n.call(Qt, a), Ce("onNavEnd", {
						level: ra,
						direction: e,
						list: t[0]
					})
				})) : (J(a, s), n.call(Qt, a))
			}

			function K(e, t) {
				sa || (e.hasClass("mbsc-lv-parent") ? (ra++, B("r", ca[e.attr("data-ref")].child, null, t)) : e.hasClass("mbsc-lv-back") && (ra--, B("l", ca[e.attr("data-back")].parent, ca[e.attr("data-back")].item, t)))
			}

			function q(e, t, a) {
				function n() {
					clearTimeout(s), sa--, e.off(Re, n)
						.removeClass(t), a.call(Qt, e)
				}
				var s;
				a = a || o, kt.animation && "mbsc-lv-item-none" !== t ? (sa++, e.on(Re, n)
					.addClass(t), s = setTimeout(n, 500)) : a.call(Qt, e)
			}

			function U(e, t) {
				var a, n = e.attr("data-ref");
				a = la[n] = la[n] || [], t && a.push(t), e.attr("data-action") || (t = a.shift(), e.attr("data-action", 1), t(function() {
					e.removeAttr("data-action"), a.length ? U(e) : delete la[n]
				}))
			}

			function G(e, t, a) {
				var n, s;
				e && e.length && (n = 100 / (e.length + 2), Ee.each(e, function(r, i) {
					void 0 === i.key && (i.key = At++), void 0 === i.percent && (i.percent = t * n * (r + 1), a && (s = ze({}, i), s.key = At++, s.percent = -n * (r + 1), e.push(s), oa[s.key] = s)), oa[i.key] = i
				}))
			}
			var X, Z, Q, ee, te, ae, ne, se, re, ie, oe, le, ce, de, ue, me, pe, be, ve, ge, xe, Te, ye, _e, we, Me, Se, Ce, ke, De, Ne, Ve, Ae, Ie, Fe, Pe, Le, Ye, je, $e, Je, qe, Ue, Ge, Xe, Ze, Qe, et, tt, at, nt, st, rt, it, ot, lt, ct, dt, ut, mt, ht, ft, pt, bt, vt, gt, xt, Tt, yt, _t, wt, Mt, St, Ct, kt, Dt, Nt, Vt, At, It, Ft, Ht, Ot, Pt, Lt, Et, Yt, jt, zt, Wt, $t, Rt, Jt, Bt, Kt, qt, Ut, Gt, Xt, Zt = this,
				Qt = e,
				ta = Ee(Qt),
				sa = 0,
				ra = 0,
				ia = 0,
				oa = {}, la = {}, ca = {};
			We.call(this, e, t, !0), Zt.animate = function(e, t, a) {
				q(e, "mbsc-lv-item-" + t, a)
			}, Zt.add = function(e, t, a, n, s, r) {
				var i, l, c, d, u, m, h = "",
					f = void 0 === s ? ta : Y(s),
					p = f,
					b = Ee("object" !== (void 0 === t ? "undefined" : fe(t)) ? "<" + nt + ' data-ref="' + aa+++'" data-id="' + e + '">' + t + "</" + nt + ">" : t),
					v = b.attr("data-pos") < 0 ? "left" : "right",
					g = b.attr("data-ref");
				n = n || o, g || (g = aa++, b.attr("data-ref", g)), P(b), r || Zt.addUndoAction(function(e) {
					d ? Zt.navigate(f, function() {
						p.remove(), f.removeClass("mbsc-lv-parent")
							.children(".mbsc-lv-arr")
							.remove(), u.child = f.children(ot), Zt.remove(b, null, e, !0)
					}) : Zt.remove(b, null, e, !0)
				}, !0), U(b, function(e) {
					H(b.css("top", "")
						.removeClass("mbsc-lv-item-undo")), f.is(st) ? (m = f.attr("data-ref"), f.children(ot)
						.length || (d = !0, f.append("<" + it + "></" + it + ">"))) : m = f.children(".mbsc-lv-back")
						.attr("data-back"), u = ca[m], u && (u.child.length ? p = u.child : (f.addClass("mbsc-lv-parent")
						.prepend(Ue), p = f.children(ot)
						.prepend(qe)
						.addClass("mbsc-lv"), u.child = p, Ee(".mbsc-lv-back", f)
						.attr("data-back", m))), ca[g] = {
						item: b,
						child: b.children(ot),
						parent: p,
						ref: m
					}, c = E(p), l = c.length, void 0 !== a && null !== a || (a = l), r && (h = "mbsc-lv-item-new-" + (r ? v : "")), L(b.addClass(h)), !1 !== a && (l ? a < l ? b.insertBefore(c.eq(a)) : b.insertAfter(c.eq(l - 1)) : (i = Ee(".mbsc-lv-back", p), i.length ? b.insertAfter(i) : p.append(b))), p.hasClass("mbsc-lv-v") ? Zt.animate(b.height(b[0].offsetHeight), r && Bt === g ? "none" : "expand", function(t) {
						Zt.animate(t.height(""), r ? "add-" + v : "pop-in", function(t) {
							n.call(Qt, t.removeClass(h)), e()
						})
					}) : (n.call(Qt, b.removeClass(h)), e()), se.trigger("mbsc-refresh"), Ce("onItemAdd", {
						target: b[0]
					})
				})
			}, Zt.swipe = function(e, t, n, s, r) {
				e = Y(e), et = e, pe = s, Nt = !0, X = !0, n = void 0 === n ? 300 : n, ve = t > 0 ? 1 : -1, a(), i(), D(e, t, n), clearTimeout(jt), clearInterval(Yt), Yt = setInterval(function() {
					ee = k(e) / Qe * 100, l()
				}, 10), jt = setTimeout(function() {
					clearInterval(Yt), ee = t, l(), c(r), pe = !1, Nt = !1, X = !1
				}, n)
			}, Zt.openStage = function(e, t, a, n) {
				oa[t] && Zt.swipe(e, oa[t].percent, a, n)
			}, Zt.openActions = function(e, t, a, n) {
				e = Y(e);
				var s = R(Jt[e.attr("data-type") || "defaults"], "left" == t ? -1 : 1);
				Zt.swipe(e, "left" == t ? -s : s, a, n)
			}, Zt.close = function(e, t) {
				Zt.swipe(e, 0, t)
			}, Zt.remove = function(e, t, a, n) {
				var s, r, i;
				a = a || o, e = Y(e), e.length && (r = e.parent(), s = E(r)
					.index(e), i = e[0].style, n || (e.attr("data-ref") === Bt && (Kt = !0), Zt.addUndoAction(function(t) {
					Zt.add(null, e, s, t, r, !0)
				}, !0)), U(e, function(s) {
					t = t || (e.attr("data-pos") < 0 ? "left" : "right"), r.hasClass("mbsc-lv-v") ? Zt.animate(e.addClass("mbsc-lv-removed"), n ? "pop-out" : "remove-" + t, function(e) {
						i.height = e[0].offsetHeight + "px", Zt.animate(e, "collapse", function(e) {
							i.height = "", H(e.removeClass("mbsc-lv-removed")), !1 !== a.call(Qt, e) && e.remove(), s()
						})
					}) : (!1 !== a.call(Qt, e) && e.remove(), s()), Ce("onItemRemove", {
						target: e[0]
					})
				}))
			}, Zt.move = function(e, t, a, n, s, r) {
				e = Y(e), r || Zt.startActionTrack(), Ze.append(Xe), Zt.remove(e, a, null, r), Zt.add(null, e, t, n, s, r), r || Zt.endActionTrack()
			}, Zt.navigate = function(e, t) {
				var a, n;
				e = Y(e), a = ca[e.attr("data-ref")], n = j(e), a && (B(n >= ra ? "r" : "l", a.parent, e, t, !0), ra = n)
			}, Zt._processSettings = function() {
				ta.is("[mbsc-enhance]") && (Ve = !0, ta.removeAttr("mbsc-enhance"))
			}, Zt._init = function() {
				var e, t, a, i = 0,
					o = "",
					l = "",
					c = "";
				function sortable(){
					var bx = {};
					"group" === a && (bx = {
                        group: !1,
                        multiLevel: !0
                    });
                    !0 === a && (bx = {
                        group: !0,
                        multiLevel: !0,
                        handle: kt.sortHandle
                    })
					return bx;
				}
				
				function handleDiv(){
					var html = "", aR;
					if (a.handle) {
						aR = a.handle === true ? Ae : a.handle;
						html = '<div class="mbsc-lv-handle-c mbsc-lv-item-h-' + aR + ' mbsc-lv-handle"><div class="' + kt.handleClass + ' mbsc-lv-handle-bar-c mbsc-lv-handle">' + kt.handleMarkup + '</div></div>';
						ta.addClass('mbsc-lv-handle-' + aR);
					}
					return html;
				}
				
				it = kt.listNode, 
				ot = kt.listSelector, 
				nt = kt.itemNode, 
				st = kt.itemSelector, 
				a = kt.sort || kt.sortable;
				a = sortable(),
				a && a.handle === b && (a.handle = kt.sortHandle);
				Ae = ta.find('ul,ol').length ? 'left' : 'right',
				Fe = handleDiv(),
				qe = '<li class="mbsc-lv-item mbsc-lv-back">' + kt.backText + '<div class="mbsc-lv-arr mbsc-lv-ic mbsc-ic ' + kt.leftArrowClass + '"></div></li>',
				Ue = '<div class="mbsc-lv-arr mbsc-lv-ic mbsc-ic ' + kt.rightArrowClass + '"></div>',
				Zt.sortable = a || !1,
				e = 'mbsc-lv-cont mbsc-lv-' + kt.theme + (kt.rtl ? ' mbsc-lv-rtl' : '') + (kt.baseTheme ? ' mbsc-lv-' + kt.baseTheme : '') + (kt.animateIcons ? ' mbsc-lv-ic-anim' : '') + (kt.striped ? ' mbsc-lv-alt-row ' : '') + (kt.fixedHeader ? ' mbsc-lv-has-fixed-header ' : ''), 
				se ? (se.attr("class", e), 
				a.handle && Ee(".mbsc-lv-handle-c", se)
					.remove(), Ee(st, se)
					.not(".mbsc-lv-back")
					.removeClass("mbsc-lv-item")) : (o += '<div class="mbsc-lv-multi-c"></div>', o += '<div class="mbsc-lv-ic-c"><div class="mbsc-lv-ic-s mbsc-lv-ic mbsc-ic mbsc-ic-none"></div><div class="mbsc-lv-ic-text"></div></div>', ta.addClass("mbsc-lv mbsc-lv-v mbsc-lv-root")
					.show(), Ze = Ee('<div class="mbsc-lv-stage-c">' + o + "</div>"), Xe = Ee(".mbsc-lv-ic-c", Ze), dt = Ee(".mbsc-lv-multi-c", Ze), Ge = Ee(".mbsc-lv-ic-s", Ze), Wt = Ee(".mbsc-lv-ic-text", Ze), Tt = Ee("<" + nt + ' class="mbsc-lv-item mbsc-lv-ph"></' + nt + ">"), ke = Ee('<div class="mbsc-lv-fill-item"></div>'), se = Ee('<div class="' + e + '"><' + it + ' class="mbsc-lv mbsc-lv-dummy"></' + it + '><div class="mbsc-lv-sl-c"></div></div>'), Ie = "body" !== kt.context, qt = Ee(Ie ? kt.context : window), _e = Ee(".mbsc-lv-dummy", se), se.insertAfter(ta), qt.on("orientationchange resize", g), g(), se.on("touchstart mousedown", ".mbsc-lv-item", n)
					.on("touchmove", ".mbsc-lv-item", s)
					.on("touchend touchcancel", ".mbsc-lv-item", r), Qt.addEventListener("click", x, !0), se.on("touchstart mousedown", ".mbsc-lv-ic-m", function(e) {
					pe || (e.stopPropagation(), e.preventDefault()), Ot = v(e, "X"), Pt = v(e, "Y")
				})
					.on("touchend mouseup", ".mbsc-lv-ic-m", function(e) {
					pe || ("touchend" === e.type && p(), ea && !Ee(this)
						.hasClass("mbsc-lv-ic-disabled") && Math.abs(v(e, "X") - Ot) < 10 && Math.abs(v(e, "Y") - Pt) < 10 && _((ee < 0 ? Rt.rightMenu : Rt.leftMenu)[Ee(this)
						.index()], ae, ne))
				}), Vt = Ee(".mbsc-lv-sl-c", se)
					.append(ta.addClass("mbsc-lv-sl-curr"))
					.attr("data-ref", aa++), ie = ta, le = se), L(ta), At = 0, Jt = kt.itemGroups || {}, Jt.defaults = {
					swipeleft: kt.swipeleft,
					swiperight: kt.swiperight,
					stages: kt.stages,
					actions: kt.actions,
					actionsWidth: kt.actionsWidth
				}, Ee.each(Jt, function(e, t) {
					if (t.swipe = void 0 !== t.swipe ? t.swipe : kt.swipe, t.stages = t.stages || [], G(t.stages, 1, !0), G(t.stages.left, 1), G(t.stages.right, -1), (t.stages.left || t.stages.right) && (t.stages = [].concat(t.stages.left || [], t.stages.right || [])), De = !1, t.stages.length || (t.swipeleft && t.stages.push({
						percent: -30,
						action: t.swipeleft
					}), t.swiperight && t.stages.push({
						percent: 30,
						action: t.swiperight
					})), Ee.each(t.stages, function(e, t) {
						if (0 === t.percent) return De = !0, !1
					}), De || t.stages.push({
						percent: 0
					}), t.stages.sort(function(e, t) {
						return e.percent - t.percent
					}), Ee.each(t.stages, function(e, a) {
						if (0 === a.percent) return t.start = e, !1
					}), De ? t.left = t.right = t.stages[t.start] : (t.left = t.stages[t.start - 1] || {}, t.right = t.stages[t.start + 1] || {}), t.actions) {
						for (t.leftMenu = t.actions.left || t.actions, t.rightMenu = t.actions.right || t.leftMenu, l = "", c = "", i = 0; i < t.leftMenu.length; i++) l += "<div " + (t.leftMenu[i].color ? 'style="background-color: ' + t.leftMenu[i].color + '"' : "") + ' class="mbsc-lv-ic-m mbsc-lv-ic mbsc-ic mbsc-ic-' + t.leftMenu[i].icon + '">' + (t.leftMenu[i].text || "") + "</div>";
						for (i = 0; i < t.rightMenu.length; ++i) c += "<div " + (t.rightMenu[i].color ? 'style="background-color: ' + t.rightMenu[i].color + '"' : "") + ' class="mbsc-lv-ic-m mbsc-lv-ic mbsc-ic mbsc-ic-' + t.rightMenu[i].icon + '">' + (t.rightMenu[i].text || "") + "</div>";
						t.actions.left && (t.swipe = t.actions.right ? t.swipe : "right"), t.actions.right && (t.swipe = t.actions.left ? t.swipe : "left"), t.icons = '<div class="mbsc-lv-multi mbsc-lv-multi-ic-left">' + l + '</div><div class="mbsc-lv-multi mbsc-lv-multi-ic-right">' + c + "</div>"
					}
				}), kt.fixedHeader && (t = "mbsc-lv-fixed-header" + (Ie ? " mbsc-lv-fixed-header-ctx mbsc-lv-" + kt.theme + (kt.baseTheme ? " mbsc-lv-" + kt.baseTheme : "") : ""), Ne ? Ne.attr("class", t) : (Ne = Ee('<div class="' + t + '"></div>'), Ie ? qt.before(Ne) : se.prepend(Ne), pt = h(T, 200), qt.on("scroll touchmove", pt))), kt.hover && (je || se.on("mouseover.mbsc-lv", ".mbsc-lv-item", function() {
					Le && Le[0] == this || (b(), Le = Ee(this), Jt[Le.attr("data-type") || "defaults"].actions && (Je = setTimeout(function() {
						vt ? Le = null : (Ye = !0, Zt.openActions(Le, Pe, je, !1))
					}, $e)))
				})
					.on("mouseleave.mbsc-lv", b), je = kt.hover.time || 200, $e = kt.hover.timeout || 200, Pe = kt.hover.direction || kt.hover || "right"), Ve && se.attr("mbsc-enhance", ""), se.trigger("mbsc-enhance", [{
					theme: kt.theme,
					lang: kt.lang
				}])
			}, Zt._destroy = function() {
				var e;
				le.append(ie), Ie && Ne && Ne.remove(), Ve && (ta.attr("mbsc-enhance", ""), (e = he.instances[se[0].id]) && e.destroy()), Qt.removeEventListener("click", x, !0), se.find(".mbsc-lv-txt,.mbsc-lv-img")
					.removeClass("mbsc-lv-txt mbsc-lv-img"), se.find(ot)
					.removeClass("mbsc-lv mbsc-lv-v mbsc-lv-root mbsc-lv-sl-curr")
					.find(st)
					.removeClass("mbsc-lv-gr-title mbsc-lv-item mbsc-lv-item-enhanced mbsc-lv-parent mbsc-lv-img-left mbsc-lv-img-right mbsc-lv-item-ic-left mbsc-lv-item-ic-right")
					.removeAttr("data-ref"), Ee(".mbsc-lv-back,.mbsc-lv-handle-c,.mbsc-lv-arr,.mbsc-lv-item-ic", se)
					.remove(), ta.insertAfter(se), se.remove(), Ze.remove(), qt.off("orientationchange resize", g), pt && qt.off("scroll touchmove", pt)
			};
			var da, ua = [],
				ma = [],
				ha = [],
				fa = 0;
			Zt.startActionTrack = function() {
				fa || (ha = []), fa++
			}, Zt.endActionTrack = function() {
				--fa || ma.push(ha)
			}, Zt.addUndoAction = function(e, t) {
				var a = {
					action: e,
					async: t
				};
				fa ? ha.push(a) : (ma.push([a]), ma.length > kt.undoLimit && ma.shift())
			}, Zt.undo = function() {
				function e() {
					n < 0 ? (da = !1, t()) : (a = s[n], n--, a.async ? a.action(e) : (a.action(), e()))
				}

				function t() {
					(s = ua.shift()) && (da = !0, n = s.length - 1, e())
				}
				var a, n, s;
				ma.length && ua.push(ma.pop()), da || t()
			}, kt = Zt.settings, Ce = Zt.trigger, Zt.init(t)
		};
	sa.prototype = {
		_class: "listview",
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_defaults: {
			context: "body",
			actionsWidth: 90,
			sortDelay: 250,
			undoLimit: 10,
			swipe: !0,
			quickSwipe: !0,
			animateIcons: !0,
			animation: !0,
			revert: !0,
			vibrate: !0,
			handleClass: "",
			handleMarkup: '<div class="mbsc-lv-handle-bar mbsc-lv-handle"></div><div class="mbsc-lv-handle-bar mbsc-lv-handle"></div><div class="mbsc-lv-handle-bar mbsc-lv-handle"></div>',
			listNode: "ul",
			listSelector: "ul,ol",
			itemNode: "li",
			itemSelector: "li",
			leftArrowClass: "mbsc-ic-arrow-left4",
			rightArrowClass: "mbsc-ic-arrow-right4",
			backText: "Back",
			undoText: "Undo",
			stages: []
		}
	}, ta.ListView = sa, he.themes.listview.mobiscroll = {
		leftArrowClass: "mbsc-ic-arrow-left5",
		rightArrowClass: "mbsc-ic-arrow-right5"
	}, he.presetShort("listview", "ListView");
	var ra = {
		batch: 50,
		min: 0,
		max: 100,
		defaultUnit: "",
		units: null,
		unitNames: null,
		invalid: [],
		sign: !1,
		step: .05,
		scale: 2,
		convert: function(e) {
			return e
		},
		signText: "&nbsp;",
		wholeText: "Whole",
		fractionText: "Fraction",
		unitText: "Unit"
	};
	he.presets.scroller.measurement = function(e) {
		function t(e) {
			return Math.max(g, Math.min(x, P ? e < 0 ? Math.ceil(e) : Math.floor(e) : r(Math.round(e - z), j) + z))
		}

		function a(e) {
			return P ? r((Math.abs(e) - Math.abs(t(e))) * Y - W, j) + W : 0
		}

		function n(e) {
			var n = t(e),
				s = a(e),
				r = e < 0 ? "-" : "+";
			return s >= Y && (e < 0 ? n-- : n++, s = 0), [r, n, s]
		}

		function s(e) {
			var t = +e[f],
				a = P ? e[h] / Y * (t < 0 ? -1 : 1) : 0;
			return (I && "-" == e[0] ? -1 : 1) * (t + a)
		}

		function r(e, t) {
			return Math.round(e / t) * t
		}

		function i(e, t, a) {
			return t !== a && S.convert ? S.convert.call(this, e, t, a) : e
		}

		function o(e) {
			var t, n;
			b = i(S.min, H, e), v = i(S.max, H, e), P ? (g = b < 0 ? Math.ceil(b) : Math.floor(b), x = v < 0 ? Math.ceil(v) : Math.floor(v), T = a(b), y = a(v)) : (g = Math.round(b), x = Math.round(v), x = g + Math.floor((x - g) / j) * j, z = g % j), t = g, n = x, I && (n = Math.abs(t) > Math.abs(n) ? Math.abs(t) : Math.abs(n), t = t < 0 ? 0 : t), N.min = t < 0 ? Math.ceil(t / L) : Math.floor(t / L), N.max = n < 0 ? Math.ceil(n / L) : Math.floor(n / L)
		}

		function l(e) {
			return s(e)
				.toFixed(P ? E : 0) + (F ? " " + O[e[p]] : "")
		}
		var c, d, u, h, f, p, b, v, g, x, T, y, _, w, M = ze({}, e.settings),
			S = ze(e.settings, ra, M),
			C = {}, k = [
				[]
			],
			D = {}, N = {}, V = {}, A = [],
			I = S.sign,
			F = S.units && S.units.length,
			H = F ? S.defaultUnit || S.units[0] : "",
			O = [],
			P = S.step < 1,
			L = S.step > 1 ? S.step : 1,
			E = P ? Math.max(S.scale, (S.step + "")
				.split(".")[1].length) : 1,
			Y = Math.pow(10, E),
			j = Math.round(P ? S.step * Y : S.step),
			z = 0,
			W = 0,
			$ = 0;
		if (e.setVal = function(t, a, n, s, r) {
			e._setVal(Ee.isArray(t) ? l(t) : t, a, n, s, r)
		}, S.units) for (w = 0; w < S.units.length; ++w) _ = S.units[w], O.push(S.unitNames ? S.unitNames[_] || _ : _);
		if (I) if (I = !1, F) for (w = 0; w < S.units.length; w++) i(S.min, H, S.units[w]) < 0 && (I = !0);
		else I = S.min < 0;
		if (I && (k[0].push({
			data: ["-", "+"],
			label: S.signText
		}), $++), N = {
			label: S.wholeText,
			data: function(e) {
				return g % L + e * L
			},
			getIndex: function(e) {
				return Math.round((e - g % L) / L)
			}
		}, k[0].push(N), f = $++, o(H), P) {
			for (k[0].push(V), V.data = [], V.label = S.fractionText, w = W; w < Y; w += j) A.push(w), V.data.push({
				value: w,
				display: "." + function(e, t) {
					for (e += ""; e.length < t;) e = "0" + e;
					return e
				}(w, E)
			});
			h = $++, c = Math.ceil(100 / j), S.invalid && S.invalid.length && (Ee.each(S.invalid, function(e, t) {
				var a = t > 0 ? Math.floor(t) : Math.ceil(t);
				0 === a && (a = t <= 0 ? -.001 : .001), D[a] = (D[a] || 0) + 1, 0 === t && (a = .001, D[a] = (D[a] || 0) + 1)
			}), Ee.each(D, function(e, t) {
				t < c ? delete D[e] : D[e] = e
			}))
		}
		if (F) {
			for (C = {
				data: [],
				label: S.unitText,
				cssClass: "mbsc-msr-whl-unit",
				circular: !1
			}, w = 0; w < S.units.length; w++) C.data.push({
				value: w,
				display: O[w]
			});
			k[0].push(C)
		}
		return p = $, {
			wheels: k,
			minWidth: I && P ? 70 : 80,
			showLabel: !1,
			formatValue: l,
			compClass: "mbsc-msr",
			parseValue: function(e) {
				var t, a = ("number" == typeof e ? e + "" : e) || S.defaultValue,
					s = (a + "")
						.split(" "),
					r = +s[0],
					i = [],
					l = "";
				return F && (l = Ee.inArray(s[1], O), l = -1 == l ? Ee.inArray(H, S.units) : l, l = -1 == l ? 0 : l), u = F ? S.units[l] : "", o(u), r = isNaN(r) ? 0 : r, r = m(r, b, v), t = n(r), t[1] = m(t[1], g, x), d = r, I && (i[0] = t[0], t[1] = Math.abs(t[1])), i[f] = t[1], P && (i[h] = t[2]), F && (i[p] = l), i
			},
			onCancel: function() {
				d = void 0
			},
			validate: function(t) {
				var a, l, c, _, w, M = t.values,
					C = t.index,
					k = t.direction,
					V = {}, O = [],
					E = {}, Y = F ? S.units[M[p]] : "";
				if (I && 0 === C && (d = Math.abs(d) * ("-" == M[0] ? -1 : 1)), (C === f || C === h && P || void 0 === d || void 0 === C) && (d = s(M), u = Y), (F && C === p && u !== Y || void 0 === C) && (o(Y), d = i(d, u, Y), u = Y, l = n(d), void 0 !== C && (E[f] = N, e.changeWheel(E)), I && (M[0] = l[0])), O[f] = [], I) for (O[0] = [], b > 0 && (O[0].push("-"), M[0] = "+"), v < 0 && (O[0].push("+"), M[0] = "-"), w = Math.abs("-" == M[0] ? g : x), $ = w + L; $ < w + 20 * L; $ += L) O[f].push($), V[$] = !0;
				if (d = m(d, b, v), l = n(d), c = I ? Math.abs(l[1]) : l[1], a = I ? "-" == M[0] : d < 0, M[f] = c, a && (l[0] = "-"), P && (M[h] = l[2]), Ee.each(P ? D : S.invalid, function(e, t) {
					if (I && a) {
						if (!(t <= 0)) return;
						t = Math.abs(t)
					}
					t = r(i(t, H, Y), P ? 1 : j), V[t] = !0, O[f].push(t)
				}), M[f] = e.getValidValue(f, c, k, V), l[1] = M[f] * (I && a ? -1 : 1), P) {
					O[h] = [];
					var z = I ? M[0] + M[1] : (d < 0 ? "-" : "+") + Math.abs(l[1]),
						W = (b < 0 ? "-" : "+") + Math.abs(g),
						R = (v < 0 ? "-" : "+") + Math.abs(x);
					z === W && Ee(A)
						.each(function(e, t) {
						(a ? t > T : t < T) && O[h].push(t)
					}), z === R && Ee(A)
						.each(function(e, t) {
						(a ? t < y : t > y) && O[h].push(t)
					}), Ee.each(S.invalid, function(e, t) {
						_ = n(i(t, H, Y)), (l[0] === _[0] || 0 === l[1] && 0 === _[1] && 0 === _[2]) && l[1] === _[1] && O[h].push(_[2])
					})
				}
				return {
					disabled: O,
					valid: M
				}
			}
		}
	}, he.presetShort("measurement");
	var ia = he.presets.scroller,
		oa = {
			min: 0,
			max: 100,
			defaultUnit: "km",
			units: ["m", "km", "in", "ft", "yd", "mi"]
		}, la = {
			mm: .001,
			cm: .01,
			dm: .1,
			m: 1,
			dam: 10,
			hm: 100,
			km: 1e3,
			in : .0254,
			ft: .3048,
			yd: .9144,
			ch: 20.1168,
			fur: 201.168,
			mi: 1609.344,
			lea: 4828.032
		};
	he.presetShort("distance"), ia.distance = function(e) {
		var t = ze({}, oa, e.settings);
		return ze(e.settings, t, {
			sign: !1,
			convert: function(e, t, a) {
				return e * la[t] / la[a]
			}
		}), ia.measurement.call(this, e)
	};
	var ca = he.presets.scroller,
		da = {
			min: 0,
			max: 100,
			defaultUnit: "N",
			units: ["N", "kp", "lbf", "pdl"]
		}, ua = {
			N: 1,
			kp: 9.80665,
			lbf: 4.448222,
			pdl: .138255
		};
	he.presetShort("force"), ca.force = function(e) {
		var t = ze({}, da, e.settings);
		return ze(e.settings, t, {
			sign: !1,
			convert: function(e, t, a) {
				return e * ua[t] / ua[a]
			}
		}), ca.measurement.call(this, e)
	};
	var ma = he.presets.scroller,
		ha = {
			min: 0,
			max: 1e3,
			defaultUnit: "kg",
			units: ["g", "kg", "oz", "lb"],
			unitNames: {
				tlong: "t (long)",
				tshort: "t (short)"
			}
		}, fa = {
			mg: .001,
			cg: .01,
			dg: .1,
			g: 1,
			dag: 10,
			hg: 100,
			kg: 1e3,
			t: 1e6,
			drc: 1.7718452,
			oz: 28.3495,
			lb: 453.59237,
			st: 6350.29318,
			qtr: 12700.58636,
			cwt: 50802.34544,
			tlong: 1016046.9088,
			tshort: 907184.74
		};
	he.presetShort("mass"), ma.mass = function(e) {
		var t = ze({}, ha, e.settings);
		return ze(e.settings, t, {
			sign: !1,
			convert: function(e, t, a) {
				return e * fa[t] / fa[a]
			}
		}), ma.measurement.call(this, e)
	};
	var pa = he.presets.scroller,
		ba = {
			min: 0,
			max: 100,
			defaultUnit: "kph",
			units: ["kph", "mph", "mps", "fps", "knot"],
			unitNames: {
				kph: "km/h",
				mph: "mi/h",
				mps: "m/s",
				fps: "ft/s",
				knot: "knot"
			}
		}, va = {
			kph: 1,
			mph: 1.60934,
			mps: 3.6,
			fps: 1.09728,
			knot: 1.852
		};
	he.presetShort("speed"), pa.speed = function(e) {
		var t = ze({}, ba, e.settings);
		return ze(e.settings, t, {
			sign: !1,
			convert: function(e, t, a) {
				return e * va[t] / va[a]
			}
		}), pa.measurement.call(this, e)
	};
	var ga = he.presets.scroller,
		xa = {
			min: -20,
			max: 40,
			defaultUnit: "c",
			units: ["c", "k", "f", "r"],
			unitNames: {
				c: "°C",
				k: "K",
				f: "°F",
				r: "°R"
			}
		}, Ta = {
			c2k: function(e) {
				return e + 273.15
			},
			c2f: function(e) {
				return 9 * e / 5 + 32
			},
			c2r: function(e) {
				return 9 * (e + 273.15) / 5
			},
			k2c: function(e) {
				return e - 273.15
			},
			k2f: function(e) {
				return 9 * e / 5 - 459.67
			},
			k2r: function(e) {
				return 9 * e / 5
			},
			f2c: function(e) {
				return 5 * (e - 32) / 9
			},
			f2k: function(e) {
				return 5 * (e + 459.67) / 9
			},
			f2r: function(e) {
				return e + 459.67
			},
			r2c: function(e) {
				return 5 * (e - 491.67) / 9
			},
			r2k: function(e) {
				return 5 * e / 9
			},
			r2f: function(e) {
				return e - 459.67
			}
		};
	he.presetShort("temperature"), ga.temperature = function(e) {
		var t = ze({}, xa, e.settings);
		return ze(e.settings, t, {
			sign: !0,
			convert: function(e, t, a) {
				return Ta[t + "2" + a](e)
			}
		}), ga.measurement.call(this, e)
	};
	var ya = 1,
		_a = function(e, t, a) {
			function n(e) {
				clearTimeout(v), v = setTimeout(function() {
					i("load" !== e.type)
				}, 200)
			}

			function s(t, a) {
				if (t.length) {
					if (a = k._onItemTap(t, a), l = t, t.parent()[0] == e) {
						var n = t.offset()
							.left,
							s = t[0].offsetLeft,
							r = t[0].offsetWidth,
							i = c.offset()
								.left;
						g && (s = _ - s - r), "a" == y.variant ? n < i ? x.scroll(g ? s + r - h : -s, C, !0) : n + r > i + h && x.scroll(g ? s : h - s - r, C, !0) : x.scroll(h / 2 - s - r / 2, C, !0)
					}
					a && M("onItemTap", {
						target: t[0]
					})
				}
			}

			function r() {
				var e, t;
				k._initMarkup(c), D.find(".mbsc-ripple")
					.remove(), k._$items = D.children(), k._$items.each(function(a) {
					var n, s = Ee(this),
						r = s.attr("data-ref");
					r || (r = ya++), 0 === a && (e = s), l || (l = k._getActiveItem(s)), t = k._getItemProps(s) || {}, n = "mbsc-scv-item " + (t.cssClass || ""), s.attr("data-ref", r)
						.removeClass(S[r])
						.addClass(n), S[r] = n
				}), l || (l = e), k._markupReady(c)
			}

			function i(t, a) {
				var n = y.itemWidth,
					s = y.layout;
				k.contWidth = h = c.width(), t && p === h || !h || (p = h, d(s) && (f = h ? h / s : n) < n && (s = "liquid"), n && ("liquid" == s ? f = h ? h / Math.min(Math.floor(h / n), k._$items.length) : n : "fixed" == s && (f = n)), k._size(h, f), f && D.children()
					.css("width", f + "px"), k.totalWidth = _ = e.offsetWidth, ze(x.settings, {
					contSize: h,
					maxSnapScroll: !! y.paging && 1,
					maxScroll: 0,
					minScroll: _ > h ? h - _ : 0,
					snap: y.paging ? h : !! T && (f || ".mbsc-scv-item"),
					elastic: _ > h && (f || h)
				}), x.refresh(a))
			}
			var l, c, u, m, h, f, p, v, g, x, T, y, _, w, M, S = {}, C = 1e3,
				k = this,
				D = Ee(e);
			We.call(this, e, t, !0), k.navigate = function(e, t) {
				s(k._getItem(e), t)
			}, k.next = function(e) {
				if (l) {
					var t = l.next();
					t.length && (l = t, s(l, e))
				}
			}, k.prev = function(e) {
				if (l) {
					var t = l.prev();
					t.length && (l = t, s(l, e))
				}
			}, k.refresh = k.position = function(e) {
				r(), i(!1, e)
			}, k._init = function() {
				var e;
				u = Ee(y.context), 
				m = Ee("body" == y.context ? window : y.context),
				k.__init(), 
				//"tabs" == y.type ? (y.select = y.select || "single", y.variant = y.variant || "b") : "options" == y.type ? (y.select = y.select || "multiple", y.variant = y.variant || "a") : "menu" == y.type && (y.select = y.select || "off", y.variant = y.variant || "a"),
				y.itemWidth && y.snap === b && (y.snap = !0),
				g = y.rtl || false,
				T = y.snap || false;
				e = 'mbsc-scv-c '+ (De ? '':'mbsc-no-touch') +' mbsc-ms-c mbsc-ms-' + y.variant + " mbsc-ms-" + y.display + " mbsc-" + y.theme + " " + (y.baseTheme ? " mbsc-" + y.baseTheme : "") + " " + (y.cssClass || "") + " " + (y.wrapperClass || "") + (y.rtl ? " mbsc-rtl" : " mbsc-ltr") + (y.itemWidth ? " mbsc-ms-hasw" : "") + ("body" == y.context ? "" : " mbsc-scv-ctx") + ( "off" != y.select ? "" : " mbsc-ms-nosel") + (k._getContClass() || ""), 
				c ? (c.attr("class", e),
				D.off(".mbsc-ripple")) : (c = Ee('<div class="' + e + '"><div class="mbsc-scv-sc"></div></div>')
					.insertAfter(D), c.find(".mbsc-scv-sc")
					.append(D), x = new ot(c[0], {
					axis: "X",
					contSize: 0,
					maxScroll: 0,
					maxSnapScroll: 1,
					minScroll: 0,
					snap: 1,
					elastic: 1,
					rtl: g,
					mousewheel: y.mousewheel,
					thresholdX: y.threshold,
					onStart: function(e) {
						w || "touchstart" != e.domEvent.type || (w = !0, u.find(".mbsc-no-touch")
							.removeClass("mbsc-no-touch"))
					},
					onBtnTap: function(e) {
						"touchend" === e.domEvent.type && b(e.domEvent, e.target), s(Ee(e.target), !0)
					},
					onGestureStart: function(e) {
						M("onGestureStart", e)
					},
					onGestureEnd: function(e) {
						M("onGestureEnd", e)
					},
					onMove: function(e) {
						M("onMove", e)
					},
					onAnimationStart: function(e) {
						M("onAnimationStart", e)
					},
					onAnimationEnd: function(e) {
						M("onAnimationEnd", e)
					}
				})), D.css("display", "")
					.addClass("mbsc-scv"), r(), M("onMarkupReady", {
					target: c[0]
				}), i(), c.find("img")
					.on("load", n), m.on("orientationchange resize", n)
			},
			k._size = o, 
			k._initMarkup = o, 
			k._markupReady = o, 
			k._onItemTap = o, 
			k._getContClass = o, 
			k._getItemProps = o, 
			k._getActiveItem = o, 
			k.__init = o, 
			k.__destroy = o, 
			k._destroy = function() {
				k.__destroy(), m.off("orientationchange resize", n), D.removeClass("mbsc-scv")
					.insertAfter(c)
					.find(".mbsc-scv-item")
					.each(function() {
					var e = Ee(this);
					e.width("")
						.removeClass(S[e.attr("data-ref")])
				}), c.remove(), x.destroy()
			}, k._getItem = function(e) {
				return "object" !== (void 0 === e ? "undefined" : fe(e)) && (e = k._$items.filter('[data-id="' + e + '"]')), Ee(e)
			}, y = k.settings, M = k.trigger, a || k.init(t)
		};
	_a.prototype = {
		_class: "scrollview",
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_defaults: {
			tap: !0,
			context: "body",
			layout: "liquid"
		}
	}, he.classes.ScrollView = _a, he.presetShort("scrollview", "ScrollView");
	var wa = function(e, t, a) {
		function n() {
			l && "inline" != l && i.find(".mbsc-page")
				.css("padding-" + l, "")
		}

		function s(e) {
			e.addClass(u)
				.attr("data-selected", "true")
				.attr("aria-selected", "true")
		}

		function r(e) {
			e.removeClass(u)
				.removeAttr("data-selected")
				.removeAttr("aria-selected")
		}
		var i, l, c, d, u, m, h = Ee(e),
			f = this;
		_a.call(this, e, t, !0), f.select = function(e) {
			c || r(f._$items.filter(".mbsc-ms-item-sel")), s(f._getItem(e))
		}, f.deselect = function(e) {
			r(f._getItem(e))
		}, f.enable = function(e) {
			f._getItem(e)
				.removeClass("mbsc-btn-d mbsc-fr-btn-d")
				.removeAttr("data-disabled")
				.removeAttr("aria-disabled")
		}, f.disable = function(e) {
			f._getItem(e)
				.addClass("mbsc-btn-d mbsc-fr-btn-d")
				.attr("data-disabled", "true")
				.attr("aria-disabled", "true")
		}, f.setBadge = function(e, t) {
			var a;
			e = f._getItem(e)
				.attr("data-badge", t), a = Ee(".mbsc-ms-badge", e), a.length ? t ? a.html(t) : a.remove() : t && e.append('<span class="mbsc-ms-badge">' + t + "</span>")
		}, f._markupReady = function(e) {
			f._hasIcons ? e.addClass("mbsc-ms-icons") : e.removeClass("mbsc-ms-icons"), f._hasText ? e.addClass("mbsc-ms-txt") : e.removeClass("mbsc-ms-txt"), f.__markupReady(e)
		}, f._size = function(t, a) {
			f.__size(t, a), "inline" != l && i.find(".mbsc-page")
				.css("padding-" + l, e.offsetHeight + "px")
		}, f._onItemTap = function(e, t) {
			return !1 !== f.__onItemTap(e, t) && (void 0 === t && (t = !c), d && t && !e.hasClass("mbsc-btn-d") && (c ? "true" == e.attr("data-selected") ? r(e) : s(e) : (r(f._$items.filter(".mbsc-ms-item-sel")), s(e))), t)
		}, f._getActiveItem = function(e) {
			var t = "true" == e.attr("data-selected");
			if (d && !c && t) return e
		}, f._getItemProps = function(e) {
			var t = "true" == e.attr("data-selected"),
				a = "true" == e.attr("data-disabled"),
				n = e.attr("data-icon"),
				s = e.attr("data-badge");
			return e.attr("data-role", "button")
				.attr("aria-selected", t ? "true" : "false")
				.attr("aria-disabled", a ? "true" : "false"), s && e.append('<span class="mbsc-ms-badge">' + s + "</span>"), n && (f._hasIcons = !0), e.text() && (f._hasText = !0), {
				cssClass: "mbsc-ms-item mbsc-btn-e " + (m.itemClass || "") + " " + (t ? u : "") + (a ? " mbsc-btn-d mbsc-fr-btn-d " + (m.disabledClass || "") : "") + (n ? " mbsc-ms-ic mbsc-ic mbsc-ic-" + n : "")
			}
		}, f._getContClass = function() {
			return " mbsc-ms-c mbsc-ms-" + m.variant + " mbsc-ms-" + l + (d ? "" : " mbsc-ms-nosel") + (f.__getContClass() || "")
		}, f.__init = function() {
			f.___init(), i = Ee(m.context), n(), l = m.display, c = "multiple" == m.select, d = "off" != m.select, u = " mbsc-ms-item-sel " + (m.activeClass || ""), h.addClass("mbsc-ms mbsc-ms-base " + (m.groupClass || ""))
		}, f.__destroy = function() {
			h.removeClass("mbsc-ms mbsc-ms-base " + (m.groupClass || "")), n(), f.___destroy()
		}, f.__onItemTap = o, f.__getContClass = o, f.__markupReady = o, f.__size = o, f.___init = o, f.___destroy = o, m = f.settings, a || f.init(t)
	};
	wa.prototype = {
		_defaults: ze({}, _a.prototype._defaults)
	};
	var Ma = function(e, t) {
		var a = this;
		wa.call(this, e, t, !0), a.___init = function() {}, a.settings, a.init(t)
	};
	Ma.prototype = {
		_class: "optionlist",
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_defaults: ze({}, wa.prototype._defaults, {
			select: "multiple",
			variant: "a",
			display: "inline"
		})
	}, he.classes.Optionlist = Ma, he.themes.optionlist = he.themes.navigation, he.presetShort("optionlist", "Optionlist");
	var Sa = function(e, t) {
		var a, n, s, r, i, o = Ee(e),
			l = o.is("ul,ol"),
			c = this;
		wa.call(this, e, t, !0), c._initMarkup = function() {
			a && a.remove(), n && o.append(n.children())
		}, c.__size = function(e, t) {
			var l, d = t || 72,
				u = c._$items.length,
				m = 0;
			i.hide(), "bottom" == r.type && (o.removeClass("mbsc-scv-liq"), a.remove(), c._$items.remove()
				.each(function(a) {
				var s = Ee(this);
				o.append(s), m += t || this.offsetWidth || 0, Math.round(m + (a < u - 1 ? d : 0)) > e && (l = !0, n.append(s.css("width", "")
					.addClass("mbsc-fr-btn-e")))
			}), a.attr("class", s + (r.moreIcon ? " mbsc-menu-item-ic mbsc-ms-ic mbsc-ic mbsc-ic-" + r.moreIcon : ""))
				.html(c._hasIcons && c._hasText ? r.moreText : ""), l && o.append(a)), "liquid" == r.layout && o.addClass("mbsc-scv-liq")
		}, c.__onItemTap = function(e) {
			if (e.hasClass("mbsc-menu-item") && !1 !== c.trigger("onMenuShow", {
				target: e[0],
				menu: i
			})) return i.show(!1, !0), !1
		}, c.__getContClass = function() {
			return "hamburger" == r.type ? " mbsc-ms-hamburger" : ""
		}, c.__markupReady = function(e) {
			"hamburger" == r.type && (n.append(c._$items.addClass("mbsc-fr-btn-e")), a.attr("class", s + (r.menuIcon ? " mbsc-menu-item-ic mbsc-ms-ic mbsc-ic mbsc-ic-" + r.menuIcon : ""))
				.html(r.menuText || ""), o.append(a), r.menuText && r.menuIcon || e.removeClass("mbsc-ms-icons"), r.menuText ? e.addClass("mbsc-ms-txt") : e.removeClass("mbsc-ms-txt"))
		}, c.___init = function() {
			var e;
			"tab" == r.type ? (r.display = r.display || "top", r.variant = r.variant || "b") : "bottom" == r.type ? (r.display = r.display || "bottom", r.variant = r.variant || "a") : "hamburger" == r.type && (r.display = r.display || "inline", r.variant = r.variant || "a"), s = "mbsc-scv-item mbsc-ms-item mbsc-btn-e mbsc-menu-item " + (r.itemClass || ""), a || (a = Ee(l ? "<li></li>" : "<div></div>"), n = Ee(l ? "<ul></ul>" : "<div></div>")
				.addClass("mbsc-scv mbsc-ms")), i = new Jt(n[0], {
				display: "bubble",
				theme: r.theme,
				lang: r.lang,
				context: r.context,
				buttons: [],
				anchor: a,
				onBeforeShow: function(t, a) {
					e = null, a.settings.cssClass = "mbsc-wdg mbsc-ms-a mbsc-ms-more" + (c._hasText ? "" : " mbsc-ms-more-icons")
				},
				onBeforeClose: function() {
					return c.trigger("onMenuHide", {
						target: e && e[0],
						menu: i
					})
				},
				onMarkupReady: function(t, a) {
					c.tap(a._markup.find(".mbsc-fr-c"), function(t) {
						e = Ee(t.target)
							.closest(".mbsc-ms-item"), e.length && !e.hasClass("mbsc-btn-d") && (c.navigate(e, !0), i.hide())
					})
				}
			})
		}, c.___destroy = function() {
			i.destroy(), o.append(c._$items), a.remove()
		}, r = c.settings, c.init(t)
	};
	Sa.prototype = {
		_class: "navigation",
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_defaults: ze({}, wa.prototype._defaults, {
			type: "bottom",
			moreText: "More",
			moreIcon: "material-more-horiz",
			menuIcon: "material-menu"
		})
	}, he.classes.Navigation = Sa, he.presetShort("nav", "Navigation"), he.presets.scroller.number = he.presets.scroller.measurement, he.presetShort("number");
	var Ca = he.presets.numpad,
		ka = function(e, t, a) {
			function n(t) {
				var a, n = T.validate.call(e, {
					values: A.slice(0),
					variables: j
				}, L) || [],
					r = n && n.disabled || [];
				if (L._isValid = !n.invalid, L._tempValue = T.formatValue.call(e, A.slice(0), j, L), x = A.length, I = n.length || H, L._isVisible && he.Bgcyj) {
					if (Ee(".mbsc-np-ph", p)
						.each(function(e) {
						Ee(this)
							.html("ltr" == T.fill ? e >= x ? g : y || A[e] : e >= H - I ? e + x < H ? g : y || A[e + x - H] : "")
					}), Ee(".mbsc-np-cph", p)
						.each(function() {
						Ee(this)
							.html(j[Ee(this)
							.attr("data-var")] || Ee(this)
							.attr("data-ph"))
					}), x === H) for (a = 0; a <= 9; a++) r.push(a);
					for (Ee(".mbsc-np-btn", p)
						.removeClass(b), a = 0; a < r.length; a++) Ee('.mbsc-np-btn[data-val="' + r[a] + '"]', p)
						.addClass(b);
					L._isValid ? Ee(".mbsc-fr-btn-s .mbsc-fr-btn", p)
						.removeClass(b) : Ee(".mbsc-fr-btn-s .mbsc-fr-btn", p)
						.addClass(b), L.live && (L._hasValue = t || L._hasValue, s(t, !1, t), t && F("onSet", {
						valueText: L._value
					}))
				}
			}

			function s(e, t, a, s) {
				t && n(), s || (O = A.slice(0), z = ze({}, j), E = Y.slice(0), L._value = L._hasValue ? L._tempValue : null), e && (L._isInput && P.val(L._hasValue && L._isValid ? L._value : ""), F("onFill", {
					valueText: L._hasValue ? L._tempValue : "",
					change: a
				}), a && (L._preventChange = !0, P.trigger("change")))
			}

			function r(e) {
				var t, a, n = e || [],
					s = [];
				for (Y = [], j = {}, t = 0; t < n.length; t++) /:/.test(n[t]) ? (a = n[t].split(":"), j[a[0]] = a[1], Y.push(a[0])) : (s.push(n[t]), Y.push("digit"));
				return s
			}

			function i(e, t) {
				!(x || t || T.allowLeadingZero) || e.hasClass("mbsc-fr-btn-d") || e.hasClass("mbsc-np-btn-empty") || x < H && he.Bgcyj && (Y.push("digit"), A.push(t), n(!0))
			}

			function o(e) {
				var t, a, s = e.attr("data-val"),
					r = "false" !== e.attr("data-track"),
					i = e.attr("data-var");
				if (!e.hasClass("mbsc-fr-btn-d")) {
					if (i && (a = i.split(":"), r && Y.push(a[0]), j[a[0]] = void 0 === a[2] ? a[1] : j[a[0]] == a[1] ? a[2] : a[1]), s.length + x <= I) for (t = 0; t < s.length; ++t) a = d(s[t]) ? +s[t] : s[t], (T.allowLeadingZero || x || a) && (Y.push("digit"), A.push(a), x = A.length);
					n(!0)
				}
			}

			function l() {
				var e, t, a = Y.pop();
				if (x || "digit" !== a) {
					if ("digit" !== a && j[a]) for (delete j[a], t = Y.slice(0), Y = [], e = 0; e < t.length; e++) t[e] !== a && Y.push(t[e]);
					else A.pop();
					n(!0)
				}
			}

			function c(e) {
				N = !0, _ = v(e, "X"), w = v(e, "Y"), clearInterval(V), clearTimeout(V), l(), V = setInterval(function() {
					l()
				}, 150)
			}

			function u() {
				clearInterval(V), N = !1
			}

			function m(e) {
				if (C(e, this)) {
					if ("keydown" == e.type && 32 != e.keyCode) return;
					c(e), "mousedown" == e.type && Ee(document)
						.on("mousemove", h)
						.on("mouseup", f)
				}
			}

			function h(e) {
				N && (M = v(e, "X"), S = v(e, "Y"), k = M - _, D = S - w, (Math.abs(k) > 7 || Math.abs(D) > 7) && u())
			}

			function f(e) {
				N && (e.preventDefault(), u(), "mouseup" == e.type && Ee(document)
					.off("mousemove", h)
					.off("mouseup", f))
			}
			var p, b, g, x, T, y, _, w, M, S, k, D, N, V, A, I, F, H, O, P = Ee(e),
				L = this,
				E = [],
				Y = [],
				j = {}, z = {}, W = {
					107: "+",
					109: "-"
				}, $ = {
					48: 0,
					49: 1,
					50: 2,
					51: 3,
					52: 4,
					53: 5,
					54: 6,
					55: 7,
					56: 8,
					57: 9,
					96: 0,
					97: 1,
					98: 2,
					99: 3,
					100: 4,
					101: 5,
					102: 6,
					103: 7,
					104: 8,
					105: 9
				};
			rt.call(this, e, t, !0), L.setVal = L._setVal = function(t, a, n, i) {
				L._hasValue = null !== t && void 0 !== t, A = r(Ee.isArray(t) ? t.slice(0) : T.parseValue.call(e, t, L)), s(a, !0, void 0 === n ? a : n, i)
			}, L.getVal = L._getVal = function(e) {
				return L._hasValue || e ? L[e ? "_tempValue" : "_value"] : null
			}, L.setArrayVal = L.setVal, L.getArrayVal = function(e) {
				return e ? A.slice(0) : L._hasValue ? O.slice(0) : null
			}, L._readValue = function() {
				var t = P.val() || "";
				"" !== t && (L._hasValue = !0), y ? (j = {}, Y = [], A = []) : (j = L._hasValue ? z : {}, Y = L._hasValue ? E : [], A = L._hasValue && O ? O.slice(0) : r(T.parseValue.call(e, t, L)), s(!1, !0))
			}, L._fillValue = function() {
				L._hasValue = !0, s(!0, !1, !0)
			}, L._generateContent = function() {
				var e, t, a, n = 1,
					s = "",
					r = "";
				for (r += '<div class="mbsc-np-hdr"><div role="button" tabindex="0" aria-label="' + T.deleteText + '" class="mbsc-np-del mbsc-fr-btn-e mbsc-ic mbsc-ic-' + T.deleteIcon + '"></div><div class="mbsc-np-dsp">', s = T.template.replace(/d/g, '<span class="mbsc-np-ph">' + g + "</span>")
					.replace(/&#100;/g, "d"), s = s.replace(/{([a-zA-Z0-9]*)\:?([a-zA-Z0-9\-\_]*)}/g, '<span class="mbsc-np-cph" data-var="$1" data-ph="$2">$2</span>'), r += s, r += "</div></div>", r += '<div class="mbsc-np-tbl-c mbsc-w-p"><div class="mbsc-np-tbl">', e = 0; e < 4; e++) {
					for (r += '<div class="mbsc-np-row">', t = 0; t < 3; t++) a = n, 10 == n || 12 == n ? a = "" : 11 == n && (a = 0), "" === a ? 10 == n && T.leftKey ? r += '<div role="button" tabindex="0" class="mbsc-np-btn mbsc-np-btn-custom mbsc-fr-btn-e" ' + (T.leftKey.variable ? 'data-var="' + T.leftKey.variable + '"' : "") + ' data-val="' + (T.leftKey.value || "") + '" ' + (void 0 !== T.leftKey.track ? ' data-track="' + T.leftKey.track + '"' : "") + ">" + T.leftKey.text + "</div>" : 12 == n && T.rightKey ? r += '<div role="button" tabindex="0" class="mbsc-np-btn mbsc-np-btn-custom mbsc-fr-btn-e" ' + (T.rightKey.variable ? 'data-var="' + T.rightKey.variable + '"' : "") + ' data-val="' + (T.rightKey.value || "") + '" ' + (void 0 !== T.rightKey.track ? ' data-track="' + T.rightKey.track + '"' : "") + " >" + T.rightKey.text + "</div>" : r += '<div class="mbsc-np-btn mbsc-np-btn-empty"></div>' : r += '<div tabindex="0" role="button" class="mbsc-np-btn mbsc-fr-btn-e" data-val="' + a + '">' + a + "</div>", n++;
					r += "</div>"
				}
				return r += "</div></div>"
			}, L._markupReady = function() {
				p = L._markup, n()
			}, L._attachEvents = function(e) {
				e.on("keydown", function(t) {
					var a;
					void 0 !== W[t.keyCode] ? (a = Ee('.mbsc-np-btn[data-var="sign:-:"]', e), a.length && (j.sign = 107 == t.keyCode ? "-" : "", o(a))) : void 0 !== $[t.keyCode] ? i(Ee('.mbsc-np-btn[data-val="' + $[t.keyCode] + '"]', e), $[t.keyCode]) : 8 == t.keyCode && (t.preventDefault(), l())
				}), L.tap(Ee(".mbsc-np-btn", e), function() {
					var e = Ee(this);
					e.hasClass("mbsc-np-btn-custom") ? o(e) : i(e, +e.attr("data-val"))
				}, !1, 30, !0), Ee(".mbsc-np-del", e)
					.on("touchstart mousedown keydown", m)
					.on("touchmove mousemove", h)
					.on("touchend mouseup keyup", f)
			}, L.__init = function() {
				T = L.settings, T.cssClass = (T.cssClass || "") + " mbsc-np", T.template = T.template.replace(/\\d/, "&#100;"), g = T.placeholder, H = (T.template.match(/d/g) || [])
					.length, b = "mbsc-fr-btn-d " + (T.disabledClass || ""), y = T.mask, F = L.trigger, y && P.is("input") && P.attr("type", "password")
			}, L._indexOf = function(e, t) {
				var a;
				for (a = 0; a < e.length; ++a)
				if (e[a].toString() === t.toString()) return a;
				return -1
			}, a || L.init(t)
		};
	ka.prototype = {
		_hasDef: !0,
		_hasTheme: !0,
		_hasLang: !0,
		_hasPreset: !0,
		_class: "numpad",
		_defaults: ze({}, rt.prototype._defaults, {
			template: "dd.dd",
			placeholder: "0",
			deleteIcon: "backspace",
			allowLeadingZero: !1,
			headerText: !1,
			fill: "rtl",
			deleteText: "Delete",
			decimalSeparator: ".",
			thousandsSeparator: ",",
			validate: o,
			parseValue: o,
			formatValue: function(e, t, a) {
				var n, s = 1,
					r = a.settings,
					i = r.placeholder,
					o = r.template,
					l = e.length,
					c = o.length,
					d = "";
				for (n = 0; n < c; n++) "d" == o[c - n - 1] ? (d = s <= l ? e[l - s] + d : i + d, s++) : d = o[c - n - 1] + d;
				return Ee.each(t, function(e, t) {
					d = d.replace("{" + e + "}", t)
				}), Ee("<div>" + d + "</div>")
					.text()
			}
		})
	}, he.classes.Numpad = ka, he.themes.numpad = he.themes.frame, he.presetShort("numpad", "Numpad", !1);
	var Da = {
		min: 0,
		max: 99.99,
		scale: 2,
		prefix: "",
		suffix: "",
		returnAffix: !1
	};
	Ca.decimal = function(e) {
		function t(e, t) {
			for (var a, n = e.slice(0), r = 0; n.length;) r = 10 * r + n.shift();
			for (a = 0; a < s.scale; a++) r /= 10;
			return t ? -1 * r : r
		}

		function a(e) {
			return t(e)
				.toFixed(s.scale)
				.replace(".", s.decimalSeparator)
				.replace(/\B(?=(\d{3})+(?!\d))/g, s.thousandsSeparator)
		}
		var n = ze({}, e.settings),
			s = ze(e.settings, Da, n),
			r = s.min < 0;
		return e.getVal = function(t) {
			var a = e._getVal(t),
				n = (a + "")
					.replace(s.decimalSeparator, ".")
					.replace(s.thousandsSeparator, "");
			return d(n) ? +n : a
		}, {
			template: (r ? "{sign}" : "") + s.prefix.replace(/d/g, "\\d") + Array((Math.floor(Math.max(s.max, Math.abs(s.min))) + "")
				.length + 1)
				.join("d") + (s.scale ? "." + Array(s.scale + 1)
				.join("d") : "") + s.suffix.replace(/d/g, "\\d"),
			leftKey: r ? {
				text: "-/+",
				variable: "sign:-:",
				track: !1
			} : void 0,
			parseValue: function(e) {
				var t, a, n = e || s.defaultValue,
					r = [];
				if (n && (n = (n + "")
					.replace(s.decimalSeparator, ".")
					.replace(s.thousandsSeparator, ""), a = n.match(/\d+\.?\d*/g))) for (a = (+a[0])
					.toFixed(s.scale), t = 0; t < a.length; t++) "." != a[t] && (+a[t] ? r.push(+a[t]) : r.length && r.push(0));
				return e < 0 && r.push("sign:-"), r
			},
			formatValue: function(e, n) {
				var r = a(e);
				return (t(e, n && "-" == n.sign) < 0 ? "-" : "") + (s.returnAffix ? s.prefix + r + s.suffix : r)
			},
			validate: function(n) {
				var r = n.values,
					i = a(r),
					o = t(r, n.variables && "-" == n.variables.sign),
					l = [];
				return r.length || s.allowLeadingZero || l.push(0), e.isVisible() && Ee(".mbsc-np-dsp", e._markup)
					.html((n.variables.sign || "") + s.prefix + i + s.suffix), {
					disabled: l,
					invalid: o > s.max || o < s.min || !! s.invalid && -1 != e._indexOf(s.invalid, o)
				}
			}
		}
	};
	var Na = ["h", "m", "s"],
		Va = {
			min: 0,
			max: 362439,
			defaultValue: 0,
			hourTextShort: "h",
			minuteTextShort: "m",
			secTextShort: "s"
		};
	Ca.timespan = function(e) {
		function t(e) {
			var t, a = "",
				n = 3600;
			return Ee(Na)
				.each(function(r, i) {
				t = Math.floor(e / n), e -= t * n, n /= 60, (t > 0 || "s" == i && !a) && (a = a + (a ? " " : "") + t + s[i])
			}), a
		}
		var a = ze({}, e.settings),
			n = ze(e.settings, Va, a),
			s = {
				h: n.hourTextShort.replace(/d/g, "\\d"),
				m: n.minuteTextShort.replace(/d/g, "\\d"),
				s: n.secTextShort.replace(/d/g, "\\d")
			}, r = 'd<span class="mbsc-np-sup mbsc-np-time">' + s.s + "</span>";
		return n.max > 9 && (r = "d" + r), n.max > 99 && (r = '<span class="mbsc-np-ts-m">' + (n.max > 639 ? "d" : "") + 'd</span><span class="mbsc-np-sup mbsc-np-time">' + s.m + "</span>" + r), n.max > 6039 && (r = '<span class="mbsc-np-ts-h">' + (n.max > 38439 ? "d" : "") + 'd</span><span class="mbsc-np-sup mbsc-np-time">' + s.h + "</span>" + r), e.setVal = function(a, n, s, r) {
			return d(a) && (a = t(a)), e._setVal(a, n, s, r)
		}, e.getVal = function(t) {
			return e._hasValue || t ? ie(e.getArrayVal(t)) : null
		}, {
			template: r,
			parseValue: function(e) {
				var a, r = e || t(n.defaultValue),
					i = [];
				return r && Ee(Na)
					.each(function(e, t) {
					a = new RegExp("(\\d+)" + s[t], "gi")
						.exec(r), a ? (a = +a[1], a > 9 ? (i.push(Math.floor(a / 10)), i.push(a % 10)) : (i.length && i.push(0), (a || i.length) && i.push(a))) : i.length && (i.push(0), i.push(0))
				}), i
			},
			formatValue: function(e) {
				return t(ie(e))
			},
			validate: function(t) {
				var a = t.values,
					s = ie(a.slice(0)),
					r = [];
				return a.length || r.push(0), {
					disabled: r,
					invalid: s > n.max || s < n.min || !! n.invalid && -1 != e._indexOf(n.invalid, +s)
				}
			}
		}
	};
	var Aa = {
		timeFormat: "hh:ii A",
		amText: "am",
		pmText: "pm"
	};
	Ca.time = function(e) {
		function t(e, t) {
			var a, n = "";
			for (a = 0; a < e.length; ++a) n += e[a] + (a % 2 == (e.length % 2 == 1 ? 0 : 1) && a != e.length - 1 ? ":" : "");
			return Ee.each(t, function(e, t) {
				n += " " + t
			}), n
		}

		function a(e) {
			var t, a, n, o, l, b, v, g, x, T, y = [],
				_ = 2 * r.length;
			if (c = _, e.length || (i && (y.push(0), y.push(s.leftKey.value)), y.push(s.rightKey.value)), !i && (_ - e.length < 2 || 1 != e[0] && (e[0] > 2 || e[1] > 3) && _ - e.length <= 2) && (y.push("30"), y.push("00")), (i ? e[0] > 1 || e[1] > 2 : 1 != e[0] && (e[0] > 2 || e[1] > 3)) && e[0] && (e.unshift(0), c = _ - 1), e.length == _) for (t = 0; t <= 9; ++t) y.push(t);
			else if (1 == e.length && i && 1 == e[0] || e.length && e.length % 2 == 0 || !i && 2 == e[0] && e[1] > 3 && e.length % 2 == 1) for (t = 6; t <= 9; ++t) y.push(t);
			if (x = void 0 !== e[1] ? "" + e[0] + e[1] : "", T = +h == +(void 0 !== e[3] ? "" + e[2] + e[3] : ""), s.invalid) for (t = 0; t < s.invalid.length; ++t)
			if (b = s.invalid[t].getHours(), v = s.invalid[t].getMinutes(), g = s.invalid[t].getSeconds(), b == +x) {
				if (2 == r.length && (v < 10 ? 0 : +("" + v)[0]) == +e[2]) {
					y.push(v < 10 ? v : +("" + v)[1]);
					break
				}
				if ((g < 10 ? 0 : +("" + g)[0]) == +e[4]) {
					y.push(g < 10 ? g : +("" + g)[1]);
					break
				}
			}
			if (s.min || s.max) {
				if (a = +d == +x, n = +u == +x, l = n && T, o = a && T, 0 === e.length) {
					for (t = i ? 2 : d > 19 ? d[0] : 3; t <= (1 == d[0] ? 9 : d[0] - 1); ++t) y.push(t);
					if (d >= 10 && (y.push(0), 2 == d[0])) for (t = 3; t <= 9; ++t) y.push(t);
					if (u && u < 10 || d && d >= 10) for (t = u && u < 10 ? +u[0] + 1 : 0; t < (d && d >= 10 ? d[0] : 10); ++t) y.push(t)
				}
				if (1 == e.length) {
					if (0 === e[0]) for (t = 0; t < d[0]; ++t) y.push(t);
					if (d && 0 !== e[0] && (i ? 1 == e[0] : 2 == e[0])) for (t = i ? 3 : 4; t <= 9; ++t) y.push(t);
					if (e[0] == d[0]) for (t = 0; t < d[1]; ++t) y.push(t);
					if (e[0] == u[0] && !i) for (t = +u[1] + 1; t <= 9; ++t) y.push(t)
				}
				if (2 == e.length && (a || n)) for (t = n ? +h[0] + 1 : 0; t < (a ? +m[0] : 10); ++t) y.push(t);
				if (3 == e.length && (n && e[2] == h[0] || a && e[2] == m[0])) for (t = n && e[2] == h[0] ? +h[1] + 1 : 0; t < (a && e[2] == m[0] ? +m[1] : 10); ++t) y.push(t);
				if (4 == e.length && (o || l)) for (t = l ? +p[0] + 1 : 0; t < (o ? +f[0] : 10); ++t) y.push(t);
				if (5 == e.length && (o && e[4] == f[0] || l && e[4] == p[0])) for (t = l && e[4] == p[0] ? +p[1] + 1 : 0; t < (o && e[4] == f[0] ? +f[1] : 10); ++t) y.push(t)
			}
			return y
		}
		var n = ze({}, e.settings),
			s = ze(e.settings, Aa, n),
			r = s.timeFormat.split(":"),
			i = s.timeFormat.match(/a/i),
			o = i ? "a" == i[0] ? s.amText : s.amText.toUpperCase() : "",
			l = i ? "a" == i[0] ? s.pmText : s.pmText.toUpperCase() : "",
			c = 0,
			d = s.min ? "" + s.min.getHours() : "",
			u = s.max ? "" + s.max.getHours() : "",
			m = s.min ? "" + (s.min.getMinutes() < 10 ? "0" + s.min.getMinutes() : s.min.getMinutes()) : "",
			h = s.max ? "" + (s.max.getMinutes() < 10 ? "0" + s.max.getMinutes() : s.max.getMinutes()) : "",
			f = s.min ? "" + (s.min.getSeconds() < 10 ? "0" + s.min.getSeconds() : s.min.getSeconds()) : "",
			p = s.max ? "" + (s.max.getSeconds() < 10 ? "0" + s.max.getSeconds() : s.max.getSeconds()) : "";
		return s.min && s.min.setFullYear(2014, 7, 20), s.max && s.max.setFullYear(2014, 7, 20), {
			placeholder: "-",
			allowLeadingZero: !0,
			template: (3 == r.length ? "dd:dd:dd" : 2 == r.length ? "dd:dd" : "dd") + (i ? '<span class="mbsc-np-sup">{ampm:--}</span>' : ""),
			leftKey: i ? {
				text: o,
				variable: "ampm:" + o,
				value: "00"
			} : {
				text: ":00",
				value: "00"
			},
			rightKey: i ? {
				text: l,
				variable: "ampm:" + l,
				value: "00"
			} : {
				text: ":30",
				value: "30"
			},
			parseValue: function(e) {
				var t, a, n = e || s.defaultValue,
					r = [];
				if (n) {
					if (n += "", a = n.match(/\d/g)) for (t = 0; t < a.length; t++) r.push(+a[t]);
					i && r.push("ampm:" + (n.match(new RegExp(s.pmText, "gi")) ? l : o))
				}
				return r
			},
			formatValue: function(e, a) {
				return t(e, a)
			},
			validate: function(n) {
				var r = n.values,
					o = n.variables,
					l = t(r, o),
					d = r.length >= 3 ? new Date(2014, 7, 20, "" + r[0] + (r.length % 2 == 0 ? r[1] : ""), "" + r[r.length % 2 == 0 ? 2 : 1] + r[r.length % 2 == 0 ? 3 : 2]) : "";
				return {
					disabled: a(r),
					length: c,
					invalid: (i ? !new RegExp("^(0?[1-9]|1[012])(:[0-5]\\d)?(:[0-5][0-9]) (?:" + s.amText + "|" + s.pmText + ")$", "i")
						.test(l) : !/^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$/.test(l)) || !! s.invalid && -1 != e._indexOf(s.invalid, d) || !((!s.min || s.min <= d) && (!s.max || d <= s.max))
				}
			}
		}
	};
	var Ia = {
		dateOrder: "mdy",
		dateFormat: "mm/dd/yy",
		delimiter: "/"
	};
	Ca.date = function(e) {
		function t(e) {
			return e % 4 == 0 && e % 100 != 0 || e % 400 == 0
		}

		function a(e) {
			var a, n, o, l, c, u = [],
				g = void 0 !== e[s + 3] ? "" + e[s] + e[s + 1] + e[s + 2] + e[s + 3] : "",
				x = void 0 !== e[r + 1] ? "" + e[r] + e[r + 1] : "",
				T = void 0 !== e[i + 1] ? "" + e[i] + e[i + 1] : "",
				y = "" + d.getMaxDayOfMonth(g || 2012, x - 1 || 0),
				_ = b === g && +m == +x,
				w = v === g && +h == +x;
			if (d.invalid) for (a = 0; a < d.invalid.length; ++a) {
				if (o = d.getYear(d.invalid[a]), l = d.getMonth(d.invalid[a]), c = d.getDay(d.invalid[a]), o == +g && l + 1 == +x && (c < 10 ? 0 : +("" + c)[0]) == +e[i]) {
					u.push(c < 10 ? c : +("" + c)[1]);
					break
				}
				if (l + 1 == +x && c == +T && ("" + o)
					.substring(0, 3) == "" + e[s] + e[s + 1] + e[s + 2]) {
					u.push(("" + o)[3]);
					break
				}
				if (o == +g && c == +T && (l < 10 ? 0 : +("" + (l + 1))[0]) == +e[r]) {
					u.push(l < 10 ? l : +("" + (l + 1))[1]);
					break
				}
			}
			if ("31" != T || e.length != r && e.length != r + 1 || (1 != e[r] ? u.push(2, 4, 6, 9, 11) : u.push(1)), "30" == T && 0 === e[r] && e.length <= r + 1 && u.push(2), e.length == r) {
				for (a = v === g && +h < 10 ? 1 : 2; a <= 9; ++a) u.push(a);
				b === g && +m >= 10 && u.push(0)
			}
			if (e.length == r + 1) {
				if (1 == e[r]) {
					for (a = v === g ? +h[1] + 1 : 3; a <= 9; ++a) u.push(a);
					if (b == g) for (a = 0; a < +m[1]; ++a) u.push(a)
				}
				if (0 === e[r] && (u.push(0), v === g || b === g)) for (a = v === g ? +T > +p ? +h : +h + 1 : 0; a <= (b === g ? +m - 1 : 9); ++a) u.push(a)
			}
			if (e.length == i) {
				for (a = w ? 1 + (+p > 10 ? +p[0] : 0) : +y[0] + 1; a <= 9; ++a) u.push(a);
				if (_) for (a = 0; a < (+f < 10 ? 0 : f[0]); ++a) u.push(a)
			}
			if (e.length == i + 1) {
				if (e[i] >= 3 || "02" == x) for (a = +y[1] + 1; a <= 9; ++a) u.push(a);
				if (w && +p[0] == e[i]) for (a = +p[1] + 1; a <= 9; ++a) u.push(a);
				if (_ && f[0] == e[i]) for (a = 0; a < +f[1]; ++a) u.push(a);
				if (0 === e[i] && (u.push(0), w || _)) for (a = w ? +p + 1 : 1; a <= (_ ? +f - 1 : 9); ++a) u.push(a)
			}
			if (void 0 !== e[s + 2] && "02" == x && "29" == T) for (n = +("" + e[s] + e[s + 1] + e[s + 2] + 0); n <= +("" + e[s] + e[s + 1] + e[s + 2] + 9); ++n) u.push(t(n) ? "" : n % 10);
			if (e.length == s) {
				if (d.min) for (a = 0; a < +b[0]; ++a) u.push(a);
				if (d.max) for (a = +v[0] + 1; a <= 9; ++a) u.push(a);
				u.push(0)
			}
			if (d.min || d.max) for (n = 1; n < 4; ++n)
			if (e.length == s + n) {
				if (e[s + n - 1] == +b[n - 1] && (3 != n || e[s + n - 2] == +b[n - 2])) for (a = 0; a < +b[n] + (3 == n && e[r + 1] && +m > +x ? 1 : 0); ++a) u.push(a);
				if (e[s + n - 1] == +v[n - 1] && (3 != n || e[s + n - 2] == +v[n - 2])) for (a = +v[n] + (3 == n && +h < +x ? 0 : 1); a <= 9; ++a) u.push(a)
			}
			return u
		}

		function n(e) {
			return new Date(+("" + e[s] + e[s + 1] + e[s + 2] + e[s + 3]), +("" + e[r] + e[r + 1]) - 1, +("" + e[i] + e[i + 1]))
		}
		var s, r, i, o, l = [],
			c = ze({}, e.settings),
			d = ze(e.settings, $e, Ia, c),
			u = d.dateOrder,
			m = d.min ? "" + (d.getMonth(d.min) + 1) : 0,
			h = d.max ? "" + (d.getMonth(d.max) + 1) : 0,
			f = d.min ? "" + d.getDay(d.min) : 0,
			p = d.max ? "" + d.getDay(d.max) : 0,
			b = d.min ? "" + d.getYear(d.min) : 0,
			v = d.max ? "" + d.getYear(d.max) : 0;
		for (u = u.replace(/y+/gi, "yyyy"), u = u.replace(/m+/gi, "mm"), u = u.replace(/d+/gi, "dd"), s = u.toUpperCase()
			.indexOf("Y"), r = u.toUpperCase()
			.indexOf("M"), i = u.toUpperCase()
			.indexOf("D"), u = "", l.push({
			val: s,
			n: "yyyy"
		}, {
			val: r,
			n: "mm"
		}, {
			val: i,
			n: "dd"
		}), l.sort(function(e, t) {
			return e.val - t.val
		}), Ee.each(l, function(e, t) {
			u += t.n
		}), s = u.indexOf("y"), r = u.indexOf("m"), i = u.indexOf("d"), u = "", o = 0; o < 8; ++o) u += "d", o + 1 != s && o + 1 != r && o + 1 != i || (u += d.delimiter);
		return e.getVal = function(t) {
			return e._hasValue || t ? n(e.getArrayVal(t)) : null
		}, {
			placeholder: "-",
			fill: "ltr",
			allowLeadingZero: !0,
			template: u,
			parseValue: function(e) {
				var t, a = [],
					n = e || d.defaultValue,
					s = M(d.dateFormat, n, d);
				if (n) for (t = 0; t < l.length; ++t) a = /m/i.test(l[t].n) ? a.concat(((d.getMonth(s) < 9 ? "0" : "") + (d.getMonth(s) + 1))
					.split("")) : /d/i.test(l[t].n) ? a.concat(((d.getDay(s) < 10 ? "0" : "") + d.getDay(s))
					.split("")) : a.concat((d.getYear(s) + "")
					.split(""));
				return a
			},
			formatValue: function(e) {
				return w(d.dateFormat, n(e), d)
			},
			validate: function(t) {
				var s = t.values,
					r = n(s);
				return {
					disabled: a(s),
					invalid: !("Invalid Date" != r && (!d.min || d.min <= r) && (!d.max || r <= d.max)) || !! d.invalid && -1 != e._indexOf(d.invalid, r)
				}
			}
		}
	};
	var Fa = {
		autoCorrect: !0,
		showSelector: !0,
		minRange: 1,
		rangeTap: !0,
		fromText: "Start",
		toText: "End"
	};
	he.presetShort("range"), he.presets.scroller.range = function(e) {
		function t(e, t) {
			e && (e.setFullYear(t.getFullYear()), e.setMonth(t.getMonth()), e.setDate(t.getDate()))
		}

		function a(t) {
			e._startDate = D = v, e._endDate = N = x, F.startInput && (Ee(F.startInput)
				.val(p), t && Ee(F.startInput)
				.trigger("change")), F.endInput && (Ee(F.endInput)
				.val(b), t && Ee(F.endInput)
				.trigger("change"))
		}

		function n(e, t) {
			var a = !0;
			return e && v && x && (x - v > F.maxRange - 1 && (V ? v = new Date(x - F.maxRange + 1) : x = new Date(+v + F.maxRange - 1)), x - v < F.minRange - 1 && (V ? v = new Date(x - F.minRange + 1) : x = new Date(+v + F.minRange - 1))), v && x || (a = !1), t && o(), a
		}

		function s() {
			return v && x ? Math.max(1, Math.round((new Date(x)
				.setHours(0, 0, 0, 0) - new Date(v)
				.setHours(0, 0, 0, 0)) / 864e5) + 1) : 0
		}

		function r(e) {
			e.addClass(L)
				.attr("aria-checked", "true")
		}

		function i() {
			k && d && (Ee(".mbsc-range-btn", d)
				.removeClass(L)
				.removeAttr("aria-checked"), r(Ee(".mbsc-range-btn", d)
				.eq(V)))
		}

		function o() {
			var e, t, a, n, s, r = 0,
				i = O || !V ? " mbsc-cal-day-hl mbsc-cal-sel-start" : " mbsc-cal-sel-start",
				o = O || V ? " mbsc-cal-day-hl mbsc-cal-sel-end" : " mbsc-cal-sel-end";
			if (p = v ? w(m, v, F) : "", b = x ? w(m, x, F) : "", d && (Ee(".mbsc-range-btn-v-start", d)
				.html(p || "&nbsp;"), Ee(".mbsc-range-btn-v-end", d)
				.html(b || "&nbsp;"), e = v ? new Date(v) : null, a = x ? new Date(x) : null, !e && a && (e = new Date(a)), !a && e && (a = new Date(e)), s = V ? a : e, Ee(".mbsc-cal-day-picker .mbsc-cal-day-hl", d)
				.removeClass(E), Ee(".mbsc-cal-day-picker .mbsc-selected", d)
				.removeClass("mbsc-cal-sel-start mbsc-cal-sel-end " + L)
				.removeAttr("aria-selected"), e && a)) for (t = e.setHours(0, 0, 0, 0), n = a.setHours(0, 0, 0, 0); a >= e && r < 126;) Ee('.mbsc-cal-day[data-full="' + s.getFullYear() + "-" + (s.getMonth() + 1) + "-" + s.getDate() + '"]', d)
				.addClass(L + " " + (s.getTime() === t ? i : "") + (s.getTime() === n ? o : ""))
				.attr("aria-selected", "true"), s.setDate(s.getDate() + (V ? -1 : 1)), r++
		}

		function l(e, t) {
			return {
				h: e ? e.getHours() : t ? 23 : 0,
				i: e ? e.getMinutes() : t ? 59 : 0,
				s: e ? e.getSeconds() : t ? 59 : 0
			}
		}
		var c, d, u, m, h, f, p, b, v, g, x, T, y, _, S, k, D = e._startDate,
			N = e._endDate,
			V = 0,
			A = new Date,
			I = ze({}, e.settings),
			F = ze(e.settings, Fa, I),
			H = F.anchor,
			O = F.rangeTap,
			P = "mbsc-fr-btn-d " + (F.disabledClass || ""),
			L = "mbsc-selected " + (F.selectedClass || ""),
			E = "mbsc-cal-day-hl",
			Y = null === F.defaultValue ? [] : F.defaultValue || [new Date(A.setHours(0, 0, 0, 0)), new Date(A.getFullYear(), A.getMonth(), A.getDate() + 6, 23, 59, 59, 999)];
		return O && (F.tabs = !0), c = pt.call(this, e), m = e._format, y = "time" === F.controls.join(""), k = 1 != F.controls.length || "calendar" != F.controls[0] || F.showSelector, F.startInput && (_ = Ee(F.startInput)
			.prop("readonly"), e.attachShow(Ee(F.startInput)
			.prop("readonly", !0), function() {
			V = 0, F.anchor = H || Ee(F.startInput)
		})), F.endInput && (S = Ee(F.endInput)
			.prop("readonly"), e.attachShow(Ee(F.endInput)
			.prop("readonly", !0), function() {
			V = 1, F.anchor = H || Ee(F.endInput)
		})), e._getDayProps = function(e, t) {
			var a = v ? new Date(v.getFullYear(), v.getMonth(), v.getDate()) : null,
				n = x ? new Date(x.getFullYear(), x.getMonth(), x.getDate()) : null;
			return {
				selected: a && n && e >= a && e <= x,
				cssClass: t.cssClass + " " + ((O || !V) && a && a.getTime() === e.getTime() || (O || V) && n && n.getTime() === e.getTime() ? E : "") + (a && a.getTime() === e.getTime() ? " mbsc-cal-sel-start" : "") + (n && n.getTime() === e.getTime() ? " mbsc-cal-sel-end" : "")
			}
		}, e.setVal = function(t, a, n, s, r) {
			var i = t || [],
				o = t;
			(void 0 === i[0] || null === i[0] || i[0].getTime) && (f = !0, v = i[0] || null, p = v ? w(m, v, F) : "", V || (o = c.parseValue(p, e))), (void 0 === i[1] || null === i[1] || i[1].getTime) && (f = !0, x = i[1] || null, b = x ? w(m, x, F) : "", V && (o = c.parseValue(b, e))), s || (e._startDate = D = v, e._endDate = N = x), e._setVal(o, a, n, s, r)
		}, e.getVal = function(t) {
			return t ? [v, x] : e._hasValue ? [D, N] : null
		}, e.setActiveDate = function(t) {
			var a;
			V = "start" == t ? 0 : 1, a = "start" == t ? v : x, e.isVisible() && (i(), O || (Ee(".mbsc-cal-table .mbsc-cal-day-hl", d)
				.removeClass(E), a && Ee('.mbsc-cal-day[data-full="' + a.getFullYear() + "-" + (a.getMonth() + 1) + "-" + a.getDate() + '"]', d)
				.addClass(E)), a && (h = !0, e.setDate(a, !1, 1e3, !0)))
		}, e.getValue = e.getVal, ze({}, c, {
			highlight: !1,
			outerMonthChange: !1,
			formatValue: function() {
				return p + (F.endInput ? "" : b ? " - " + b : "")
			},
			parseValue: function(t) {
				var a = t ? t.split(" - ") : [];
				return F.defaultValue = Y[1], N = F.endInput ? Ee(F.endInput)
					.val() ? M(m, Ee(F.endInput)
					.val(), F) : Y[1] : a[1] ? M(m, a[1], F) : Y[1], F.defaultValue = Y[0], D = F.startInput ? Ee(F.startInput)
					.val() ? M(m, Ee(F.startInput)
					.val(), F) : Y[0] : a[0] ? M(m, a[0], F) : Y[0], F.defaultValue = Y[V], p = D ? w(m, D, F) : "", b = N ? w(m, N, F) : "", e._startDate = D, e._endDate = N, c.parseValue(V ? b : p, e)
			},
			onFill: function(e) {
				a(e.change)
			},
			onBeforeClose: function(t) {
				if ("set" === t.button && !n(!0, !0)) return e.setActiveDate(V ? "start" : "end"), !1
			},
			onHide: function() {
				c.onHide.call(e), V = 0, d = null, F.anchor = H
			},
			onClear: function() {
				O && (V = 0)
			},
			onBeforeShow: function() {
				v = D || Y[0], x = N || Y[1], g = l(v, 0), T = l(x, 1), F.counter && (F.headerText = function() {
					var e = s();
					return (e > 1 ? F.selectedPluralText || F.selectedText : F.selectedText)
						.replace(/{count}/, e)
				}), f = !0
			},
			onMarkupReady: function(t) {
				var a;
				v && (h = !0, e.setDate(v, !1, 0, !0), v = e.getDate(!0)), x && (h = !0, e.setDate(x, !1, 0, !0), x = e.getDate(!0)), (V && x || !V && v) && (h = !0, e.setDate(V ? x : v, !1, 0, !0)), o(), c.onMarkupReady.call(this, t), d = Ee(t.target), d.addClass("mbsc-range"), k && (a = '<div class="mbsc-range-btn-t" role="radiogroup"><div class="mbsc-range-btn-c mbsc-range-btn-start"><div role="radio" data-select="start" class="mbsc-fr-btn-e mbsc-fr-btn-nhl mbsc-range-btn">' + F.fromText + '<div class="mbsc-range-btn-v mbsc-range-btn-v-start">' + (p || "&nbsp;") + '</div></div></div><div class="mbsc-range-btn-c mbsc-range-btn-end"><div role="radio" data-select="end" class="mbsc-fr-btn-e mbsc-fr-btn-nhl mbsc-range-btn">' + F.toText + '<div class="mbsc-range-btn-v mbsc-range-btn-v-end">' + (b || "&nbsp;") + "</div></div></div></div>", Ee(F.headerText ? ".mbsc-fr-hdr" : ".mbsc-fr-aria", d)
					.after(a), i()), Ee(".mbsc-range-btn", d)
					.on("touchstart click", function(t) {
					C(t, this) && (e._showDayPicker(), e.setActiveDate(Ee(this)
						.attr("data-select")))
				})
			},
			onDayChange: function(e) {
				e.active = V ? "end" : "start", u = !0
			},
			onSetDate: function(a) {
				var s = a.date,
					r = e._order;
				h || (void 0 === r.h && s.setHours(V ? 23 : 0), void 0 === r.i && s.setMinutes(V ? 59 : 0), void 0 === r.s && s.setSeconds(V ? 59 : 0), s.setMilliseconds(V ? 999 : 0), f && !u || (O && u && (1 == V && s < v && (V = 0), V ? s.setHours(T.h, T.i, T.s, 999) : s.setHours(g.h, g.i, g.s, 0)), V ? (x = new Date(s), T = l(x)) : (v = new Date(s), g = l(v)), y && F.autoCorrect && (t(v, s), t(x, s)), O && u && !V && (x = null))), y && !F.autoCorrect && x < v && (x = new Date(x.setDate(x.getDate() + 1))), e._isValid = n(f || u || F.autoCorrect, !h), a.active = V ? "end" : "start", !h && O && (u && (V = V ? 0 : 1), i()), e.isVisible() && (e._isValid ? Ee(".mbsc-fr-btn-s .mbsc-fr-btn", e._markup)
					.removeClass(P) : Ee(".mbsc-fr-btn-s .mbsc-fr-btn", e._markup)
					.addClass(P)), u = !1, f = !1, h = !1
			},
			onTabChange: function(t) {
				"calendar" != t.tab && e.setDate(V ? x : v, !1, 1e3, !0), n(!0, !0)
			},
			onDestroy: function() {
				Ee(F.startInput)
					.prop("readonly", _), Ee(F.endInput)
					.prop("readonly", S)
			}
		})
	};
	var Ha = 0;
	he.util.getJson = ce;
	var Oa = {
		inputClass: "",
		invalid: [],
		rtl: !1,
		showInput: !0,
		groupLabel: "Groups",
		dataHtml: "html",
		dataText: "text",
		dataValue: "value",
		dataGroup: "group",
		dataDisabled: "disabled",
		filterPlaceholderText: "Type to filter",
		filterEmptyText: "No results",
		filterClearIcon: "material-close"
	};
	he.presetShort("select"), he.presets.scroller.select = function(e) {
		function t(e) {
			var t, a, n, s, r, i, o = 0,
				l = 0,
				c = {};
			if (j = {}, C = {}, V = [], S = [], te.length = 0, q) Ee.each(T, function(o, d) {
				r = d[L.dataText], a = d[L.dataHtml], i = d[L.dataValue], n = d[L.dataGroup], s = {
					value: i,
					html: a,
					text: r,
					index: o
				}, j[i] = s, e && !b(r, e) || (V.push(s), U && (void 0 === c[n] ? (t = {
					text: n,
					value: l,
					options: [],
					index: l
				}, C[l] = t, c[n] = l, S.push(t), l++) : t = C[c[n]], Z && (s.index = t.options.length), s.group = c[n], t.options.push(s)), d[L.dataDisabled] && te.push(i))
			});
			else if (U) {
				var d = !0;
				Ee("optgroup", O)
					.each(function(t) {
					C[t] = {
						text: this.label,
						value: t,
						options: [],
						index: t
					}, d = !0, Ee("option", this)
						.each(function(a) {
						s = {
							value: this.value,
							text: this.text,
							index: Z ? a : o++,
							group: t
						}, j[this.value] = s, e && !b(this.text, e) || (d && (S.push(C[t]), d = !1), V.push(s), C[t].options.push(s), this.disabled && te.push(this.value))
					})
				})
			} else Ee("option", O)
				.each(function(t) {
				s = {
					value: this.value,
					text: this.text,
					index: t
				}, j[this.value] = s, e && !b(this.text, e) || (V.push(s), this.disabled && te.push(this.value))
			});
			L.defaultValue ? y = L.defaultValue : V.length && (y = V[0].value), Q && (V = [], o = 0, Ee.each(C, function(e, t) {
				t.options.length && (i = "__group" + e, s = {
					text: t.text,
					value: i,
					group: e,
					index: o++,
					cssClass: "mbsc-sel-gr"
				}, j[i] = s, V.push(s), te.push(s.value), Ee.each(t.options, function(e, t) {
					t.index = o++, V.push(t)
				}))
			})), E && (V.length ? E.removeClass("mbsc-sel-empty-v") : E.addClass("mbsc-sel-empty-v"))
		}

		function a(e, t, a) {
			var n, s = [];
			for (n = 0; n < e.length; n++) s.push({
				value: e[n].value,
				display: e[n].html || e[n].text,
				cssClass: e[n].cssClass
			});
			return {
				circular: !1,
				multiple: t,
				data: s,
				label: a
			}
		}

		function n() {
			return a(S, !1, L.groupLabel)
		}

		function s() {
			return a(Z ? C[M].options : V, R, K)
		}

		function r() {
			var e, t, a = [
				[]
			];
			return X && (e = n(), W ? a[0][k] = e : a[k] = [e]), t = s(), W ? a[0][A] = t : a[A] = [t], a
		}

		function i(e) {
			$ && (e && u(e) && (e = e.split(",")), Ee.isArray(e) && (e = e[0])), N = void 0 === e || null === e || "" === e ? y : e, X && (M = j[N] ? j[N].group : null)
		}

		function m(e) {
			return F[e] || (j[e] ? j[e].text : "")
		}

		function h(t) {
			var a, n, s = [];
			if (R) {
				for (a in e._tempSelected[A]) s.push(m(a));
				return s.join(", ")
			}
			return n = t[A], m(n)
		}

		function f() {
			var t, a = "",
				n = e.getVal(),
				s = L.formatValue.call(H, e.getArrayVal(), e);
			if (L.filter && "inline" == L.display || x.val(s), O.is("select") && q) {
				if ($) for (t = 0; t < n.length; t++) a += '<option value="' + n[t] + '">' + m(n[t]) + "</option>";
				else a = '<option value="' + n + '">' + s + "</option>";
				O.html(a)
			}
			H !== x[0] && O.val(n)
		}

		function p() {
			var t = {};
			t[A] = s(), I = !0, e.changeWheel(t)
		}

		function b(e, t) {
			return t = t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), e.match(new RegExp(t, "ig"))
		}

		function v(e) {
			return L.data.dataField ? e[L.data.dataField] : L.data.processResponse ? L.data.processResponse(e) : e
		}

		function g(a) {
			var o = {};
			t(a), L.wheels = r(), i(N), o[A] = s(), e._tempWheelArray[A] = N, X && (o[k] = n(), e._tempWheelArray[k] = M), e._isVisible && e.changeWheel(o, 0, !0)
		}
		var x, T, y, _, w, M, S, C, k, D, N, V, A, I, F = {}, H = this,
			O = Ee(H),
			P = ze({}, e.settings),
			L = ze(e.settings, Oa, P),
			E = Ee('<div class="mbsc-sel-empty">' + L.filterEmptyText + "</div>"),
			Y = L.readonly,
			j = {}, z = L.layout || (/top|bottom|inline/.test(L.display) || L.filter ? "liquid" : ""),
			W = "liquid" == z,
			$ = d(L.select) ? L.select : "multiple" == L.select || O.prop("multiple"),
			R = $ || !! L.filter && 1,
			J = this.id + "_dummy",
			B = Ee('label[for="' + this.id + '"]')
				.attr("for", J),
			K = void 0 !== L.label ? L.label : B.length ? B.text() : O.attr("name"),
			q = !! L.data,
			U = q ? !! L.group : Ee("optgroup", O)
				.length,
			G = L.group,
			X = U && G && !1 !== G.groupWheel,
			Z = U && G && X && !0 === G.clustered,
			Q = U && (!G || !1 !== G.header && !Z),
			ee = O.val() || ($ ? [] : [""]),
			te = [];
		return e.setVal = function(t, a, n, s, r) {
			R && (t && !$ && (t = [t]), t && u(t) && (t = t.split(",")), e._tempSelected[A] = c(t), s || (e._selected[A] = c(t)), t = t ? t[0] : null), e._setVal(t, a, n, s, r)
		}, e.getVal = function(t, a) {
			var n;
			return R ? (n = l(t ? e._tempSelected[A] : e._selected[A]), n = $ ? n : n.length ? n[0] : null) : (n = t ? e._tempWheelArray : e._hasValue ? e._wheelArray : null, n = n ? n[A] : null), $ ? n : n ? U && a ? [j[n] ? j[n].group : null, n] : n : null
		}, e.refresh = function(e, t, a) {
			a = a || o, e ? T = e : Ee.isArray(L.data) && (T = L.data), !e && D && void 0 === t ? ce(L.data.url, function(e) {
				T = v(e), g(), a()
			}, L.data.dataType) : (g(t), a())
		}, L.invalid.length || (L.invalid = te), X ? (k = 0, A = 1) : (k = -1, A = 0), R && ($ && O.prop("multiple", !0), ee && u(ee) && (ee = ee.split(",")), e._selected[A] = c(ee)), e._$input && e._$input.remove(), O.next()
			.is("input.mbsc-control") ? x = O.next()
			.removeAttr("tabindex") : L.input ? x = Ee(L.input) : (L.filter && "inline" == L.display ? e._$input = Ee('<div class="mbsc-sel-input-wrap"><input type="text" id="' + J + '" class="mbsc-control ' + L.inputClass + '" readonly /></div>') : (x = Ee('<input type="text" id="' + J + '" class="mbsc-control ' + L.inputClass + '" readonly />'), e._$input = x), L.showInput && (e._$input.insertBefore(O), x || (x = e._$input.find("#" + J)))), e.attachShow(x.attr("placeholder", L.placeholder || "")), x[0] !== H && O.addClass("mbsc-sel-hdn")
			.attr("tabindex", -1), L.filter && (_ = L.filter.minLength || 0), D = L.data && L.data.url, D ? e.refresh(void 0, void 0, f) : (q && (T = L.data), t(), i(O.val())), {
			layout: z,
			headerText: !1,
			anchor: x,
			compClass: "mbsc-sel" + (X ? " mbsc-sel-gr-whl" : "") + (R ? " mbsc-sel-multi" : ""),
			setOnTap: !X || [!1, !0],
			formatValue: h,
			parseValue: function(e) {
				return i(void 0 === e ? O.val() : e), X ? [M, N] : [N]
			},
			validate: function(e) {
				var t = e.index,
					a = [];
				return a[A] = L.invalid, Z && !I && void 0 === t && p(), I = !1, {
					disabled: a
				}
			},
			onRead: f,
			onFill: f,
			onMarkupReady: function(e, t) {
				if (L.filter) {
					var a, n, s, r = Ee(".mbsc-fr-w", e.target),
						i = Ee('<span class="mbsc-sel-filter-clear mbsc-ic mbsc-ic-' + L.filterClearIcon + '"></span>');
					"inline" == L.display ? (a = x, x.parent()
						.find(".mbsc-sel-filter-clear")
						.remove()) : (r.prepend('<div class="mbsc-input mbsc-sel-filter-cont mbsc-control-w"><span class="mbsc-input-wrap"><input type="text" class="mbsc-sel-filter-input mbsc-control"/></span></div>'), a = r.find(".mbsc-sel-filter-input")), w = null, s = a[0], a.prop("readonly", !1)
						.attr("placeholder", L.filterPlaceholderText)
						.parent()
						.append(i), r.find(".mbsc-fr-c")
						.prepend(E), t.tap(i, function() {
						s.value = "", t.refresh(), i.removeClass("mbsc-sel-filter-show-clear")
					}), a.on("keydown", function(e) {
						13 != e.keyCode && 27 != e.keyCode || (e.stopPropagation(), s.blur())
					})
						.on("keyup", function() {
						clearTimeout(n), s.value.length ? i.addClass("mbsc-sel-filter-show-clear") : i.removeClass("mbsc-sel-filter-show-clear"), n = setTimeout(function() {
							w !== s.value && !1 !== t.trigger("onFilter", {
								filterText: s.value
							}) && (w = s.value, (w.length >= _ || !w.length) && (D && L.data.remoteFilter ? ce(L.data.url + encodeURIComponent(w), function(e) {
								t.refresh(v(e))
							}, L.data.dataType) : t.refresh(void 0, w)))
						}, 500)
					})
				}
			},
			onBeforeShow: function() {
				$ && L.counter && (L.headerText = function() {
					var t = 0;
					return Ee.each(e._tempSelected[A], function() {
						t++
					}), (t > 1 ? L.selectedPluralText || L.selectedText : L.selectedText)
						.replace(/{count}/, t)
				}), i(O.val()), L.filter && t(void 0), e.settings.wheels = r(), I = !0
			},
			onWheelGestureStart: function(e) {
				e.index == k && (L.readonly = [!1, !0])
			},
			onWheelAnimationEnd: function(t) {
				var a = e.getArrayVal(!0);
				t.index == k ? (L.readonly = Y, a[k] != M && (M = a[k], N = C[M].options[0].value, a[A] = N, Z ? p() : e.setArrayVal(a, !1, !1, !0, 1e3))) : t.index == A && a[A] != N && (N = a[A], X && j[N] && j[N].group != M && (M = j[N].group, a[k] = M, e.setArrayVal(a, !1, !1, !0, 1e3)))
			},
			onItemTap: function(e) {
				if (e.index == A && (F[e.value] = j[e.value].text, R && !$ && e.selected)) return !1
			},
			onClose: function() {
				D && L.data.remoteFilter && w && e.refresh()
			},
			onDestroy: function() {
				e._$input && e._$input.remove(), O.removeClass("mbsc-sel-hdn")
					.removeAttr("tabindex")
			}
		}
	};
	var Pa = {
		autostart: !1,
		step: 1,
		useShortLabels: !1,
		labels: ["Years", "Months", "Days", "Hours", "Minutes", "Seconds", ""],
		labelsShort: ["Yrs", "Mths", "Days", "Hrs", "Mins", "Secs", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Reset",
		lapText: "Lap",
		hideText: "Hide",
		mode: "countdown"
	};
	he.presetShort("timer"), he.presets.scroller.timer = function(e) {
		function t(e) {
			return new Date(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds())
		}

		function a(e) {
			var a = {};
			if (O && M[I].index > M.days.index) {
				var n, s, r, i, o = new Date,
					l = b ? o : H,
					c = b ? H : o;
				for (c = t(c), l = t(l), a.years = l.getFullYear() - c.getFullYear(), a.months = l.getMonth() - c.getMonth(), a.days = l.getDate() - c.getDate(), a.hours = l.getHours() - c.getHours(), a.minutes = l.getMinutes() - c.getMinutes(), a.seconds = l.getSeconds() - c.getSeconds(), a.fract = (l.getMilliseconds() - c.getMilliseconds()) / 10, n = w.length; n > 0; n--) s = w[n - 1], r = M[s], i = w[Ee.inArray(s, w) - 1], M[i] && a[s] < 0 && (a[i]--, a[s] += "months" == i ? 32 - new Date(l.getFullYear(), l.getMonth(), 32)
					.getDate() : r.until + 1);
				"months" == I && (a.months += 12 * a.years, delete a.years)
			} else Ee(w)
				.each(function(t, n) {
				M[n].index <= M[I].index && (a[n] = Math.floor(e / M[n].limit), e -= a[n] * M[n].limit)
			});
			return a
		}

		function n(e) {
			var t = 1,
				a = M[e],
				n = a.wheel,
				r = a.prefix,
				i = a.until,
				o = M[w[Ee.inArray(e, w) - 1]];
			if (a.index <= M[I].index && (!o || o.limit > A)) if (S[e] || P[0].push(n), S[e] = 1, n.data = [], n.label = a.label || "", n.cssClass = "mbsc-timer-whl-" + e, A >= a.limit && (t = Math.max(Math.round(A / a.limit), 1), d = t * a.limit), e == I) n.min = 0, n.data = function(e) {
				return {
					value: e,
					display: s(e, r, a.label)
				}
			}, n.getIndex = function(e) {
				return e
			};
			else
 for (l = 0; l <= i; l += t) n.data.push({
				value: l,
				display: s(l, r, a.label)
			})
		}

		function s(e, t, a) {
			return (t || "") + (e < 10 ? "0" : "") + e + '<span class="mbsc-timer-lbl">' + a + "</span>"
		}

		function r(e) {
			var t, n = [],
				s = a(e);
			return Ee(w)
				.each(function(e, a) {
				S[a] && (t = Math.max(Math.round(A / M[a].limit), 1), n.push(Math.round(s[a] / t) * t))
			}), n
		}

		function i(e) {
			O ? (f = H - new Date, f < 0 ? (f *= -1, b = !0) : b = !1, p = 0, V = !0) : void 0 !== H ? (V = !1, f = 1e3 * H, b = "countdown" != T.mode, e && (p = 0)) : (f = 0, b = "countdown" != T.mode, V = b, e && (p = 0))
		}

		function o() {
			D ? (Ee(".mbsc-fr-w", v)
				.addClass("mbsc-timer-running mbsc-timer-locked"), Ee(".mbsc-timer-btn-toggle-c > div", v)
				.text(T.stopText), e.buttons.start.icon && Ee(".mbsc-timer-btn-toggle-c > div", v)
				.removeClass("mbsc-ic-" + e.buttons.start.icon), e.buttons.stop.icon && Ee(".mbsc-timer-btn-toggle-c > div", v)
				.addClass("mbsc-ic-" + e.buttons.stop.icon), "stopwatch" == T.mode && (Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.text(T.lapText), e.buttons.reset.icon && Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.removeClass("mbsc-ic-" + e.buttons.reset.icon), e.buttons.lap.icon && Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.addClass("mbsc-ic-" + e.buttons.lap.icon))) : (Ee(".mbsc-fr-w", v)
				.removeClass("mbsc-timer-running"), Ee(".mbsc-timer-btn-toggle-c > div", v)
				.text(T.startText), e.buttons.start.icon && Ee(".mbsc-timer-btn-toggle-c > div", v)
				.addClass("mbsc-ic-" + e.buttons.start.icon), e.buttons.stop.icon && Ee(".mbsc-timer-btn-toggle-c > div", v)
				.removeClass("mbsc-ic-" + e.buttons.stop.icon), "stopwatch" == T.mode && (Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.text(T.resetText), e.buttons.reset.icon && Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.addClass("mbsc-ic-" + e.buttons.reset.icon), e.buttons.lap.icon && Ee(".mbsc-timer-btn-resetlap-c > div", v)
				.removeClass("mbsc-ic-" + e.buttons.lap.icon)))
		}
		var l, c, d, u, m, h, f, p, b, v, g, x = ze({}, e.settings),
			T = ze(e.settings, Pa, x),
			y = T.useShortLabels ? T.labelsShort : T.labels,
			_ = ["resetlap", "toggle"],
			w = ["years", "months", "days", "hours", "minutes", "seconds", "fract"],
			M = {
				years: {
					index: 6,
					until: 10,
					limit: 31536e6,
					label: y[0],
					wheel: {}
				},
				months: {
					index: 5,
					until: 11,
					limit: 2592e6,
					label: y[1],
					wheel: {}
				},
				days: {
					index: 4,
					until: 31,
					limit: 864e5,
					label: y[2],
					wheel: {}
				},
				hours: {
					index: 3,
					until: 23,
					limit: 36e5,
					label: y[3],
					wheel: {}
				},
				minutes: {
					index: 2,
					until: 59,
					limit: 6e4,
					label: y[4],
					wheel: {}
				},
				seconds: {
					index: 1,
					until: 59,
					limit: 1e3,
					label: y[5],
					wheel: {}
				},
				fract: {
					index: 0,
					until: 99,
					limit: 10,
					label: y[6],
					prefix: ".",
					wheel: {}
				}
			}, S = {}, C = [],
			k = 0,
			D = !1,
			N = !0,
			V = !1,
			A = Math.max(10, 1e3 * T.step),
			I = T.maxWheel,
			F = "stopwatch" == T.mode || O,
			H = T.targetTime,
			O = H && void 0 !== H.getTime,
			P = [
				[]
			];
		return e.start = function() {
			if (N && e.reset(), !D) {
				if (i(), !V && p >= f) return;
				D = !0, N = !1, m = new Date, u = p, T.readonly = !0, e.setVal(r(b ? p : f - p), !0, !0, !1, 100), c = setInterval(function() {
					p = new Date - m + u, e.setVal(r(b ? p : f - p), !0, !0, !1, Math.min(100, d - 10)), !V && p + d >= f && (clearInterval(c), setTimeout(function() {
						e.stop(), p = f, e.setVal(r(b ? p : 0), !0, !0, !1, 100), e.trigger("onFinish", {
							time: f
						}), N = !0
					}, f - p))
				}, d), o(), e.trigger("onStart")
			}
		}, e.stop = function() {
			D && (D = !1, clearInterval(c), p = new Date - m + u, o(), e.trigger("onStop", {
				ellapsed: p
			}))
		}, e.toggle = function() {
			D ? e.stop() : e.start()
		}, e.reset = function() {
			e.stop(), p = 0, C = [], k = 0, e.setVal(r(b ? 0 : f), !0, !0, !1, 100), e.settings.readonly = F, N = !0, F || Ee(".mbsc-fr-w", v)
				.removeClass("mbsc-timer-locked"), e.trigger("onReset")
		}, e.lap = function() {
			D && (h = new Date - m + u, g = h - k, k = h, C.push(h), e.trigger("onLap", {
				ellapsed: h,
				lap: g,
				laps: C
			}))
		}, e.resetlap = function() {
			D && "stopwatch" == T.mode ? e.lap() : e.reset()
		}, e.getTime = function() {
			return f
		}, e.setTime = function(e) {
			H = e / 1e3, f = e
		}, e.getEllapsedTime = function() {
			return D ? new Date - m + u : 0
		}, e.setEllapsedTime = function(t, a) {
			N || (u = p = t, m = new Date, e.setVal(r(b ? p : f - p), !0, a, !1, 100))
		}, i(!0), I || f || (I = "minutes"), "inline" !== T.display && _.unshift("hide"), I || Ee(w)
			.each(function(e, t) {
			if (!I && f >= M[t].limit) return I = t, !1
		}), Ee(w)
			.each(function(e, t) {
			n(t)
		}), d = Math.max(87, d), T.autostart && setTimeout(function() {
			e.start()
		}, 0), e.handlers.toggle = e.toggle, e.handlers.start = e.start, e.handlers.stop = e.stop, e.handlers.resetlap = e.resetlap, e.handlers.reset = e.reset, e.handlers.lap = e.lap, e.buttons.toggle = {
			parentClass: "mbsc-timer-btn-toggle-c",
			text: T.startText,
			icon: T.startIcon,
			handler: "toggle"
		}, e.buttons.start = {
			text: T.startText,
			icon: T.startIcon,
			handler: "start"
		}, e.buttons.stop = {
			text: T.stopText,
			icon: T.stopIcon,
			handler: "stop"
		}, e.buttons.reset = {
			text: T.resetText,
			icon: T.resetIcon,
			handler: "reset"
		}, e.buttons.lap = {
			text: T.lapText,
			icon: T.lapIcon,
			handler: "lap"
		}, e.buttons.resetlap = {
			parentClass: "mbsc-timer-btn-resetlap-c",
			text: T.resetText,
			icon: T.resetIcon,
			handler: "resetlap"
		}, e.buttons.hide = {
			parentClass: "mbsc-timer-btn-hide-c",
			text: T.hideText,
			icon: T.closeIcon,
			handler: "cancel"
		}, {
			wheels: P,
			headerText: !1,
			readonly: F,
			buttons: _,
			compClass: "mbsc-timer",
			parseValue: function() {
				return r(b ? 0 : f)
			},
			formatValue: function(e) {
				var t = "",
					a = 0;
				return Ee(w)
					.each(function(n, s) {
					"fract" != s && S[s] && (t += e[a] + ("seconds" == s && S.fract ? "." + e[a + 1] : "") + " " + y[n] + " ", a++)
				}), t
			},
			validate: function(e) {
				var t = e.values,
					a = e.index,
					n = 0;
				N && void 0 !== a && (H = 0, Ee(w)
					.each(function(e, a) {
					S[a] && (H += M[a].limit * t[n], n++)
				}), H /= 1e3, i(!0))
			},
			onBeforeShow: function() {
				T.showLabel = !0
			},
			onMarkupReady: function(e) {
				v = Ee(e.target), o(), F && Ee(".mbsc-fr-w", v)
					.addClass("mbsc-timer-locked")
			},
			onPosition: function(e) {
				Ee(".mbsc-fr-w", e.target)
					.css("min-width", 0)
					.css("min-width", Ee(".mbsc-fr-btn-cont", e.target)[0].offsetWidth)
			},
			onDestroy: function() {
				clearInterval(c)
			}
		}
	};
	var La = {
		wheelOrder: "hhiiss",
		useShortLabels: !1,
		min: 0,
		max: 1 / 0,
		labels: ["Years", "Months", "Days", "Hours", "Minutes", "Seconds"],
		labelsShort: ["Yrs", "Mths", "Days", "Hrs", "Mins", "Secs"]
	};
	he.presetShort("timespan"), he.presets.scroller.timespan = function(e) {
		function t(e) {
			var t = {};
			return Ee(b)
				.each(function(a, n) {
				t[n] = T[n] ? Math.floor(e / v[n].limit) : 0, e -= t[n] * v[n].limit
			}), t
		}

		function a(e) {
			var t = !1,
				a = x[T[e] - 1] || 1,
				s = v[e],
				r = s.label,
				o = s.wheel;
			if (o.data = [], o.label = s.label, f.match(new RegExp(s.re + s.re, "i")) && (t = !0), e == y) o.min = c[e], o.max = u[e], o.data = function(e) {
				return {
					value: e * a,
					display: n(e * a, t, r)
				}
			}, o.getIndex = function(e) {
				return Math.round(e / a)
			};
			else
 for (i = 0; i <= s.until; i += a) o.data.push({
				value: i,
				display: n(i, t, r)
			})
		}

		function n(e, t, a) {
			return (e < 10 && t ? "0" : "") + e + '<span class="mbsc-ts-lbl">' + a + "</span>"
		}

		function s(e) {
			var t = 0;
			return Ee.each(g, function(a, n) {
				isNaN(+e[0]) || (t += v[n.v].limit * e[a])
			}), t
		}

		function r(e, t) {
			return Math.floor(e / t) * t
		}
		var i, o, l, c, u, m = ze({}, e.settings),
			h = ze(e.settings, La, m),
			f = h.wheelOrder,
			p = h.useShortLabels ? h.labelsShort : h.labels,
			b = ["years", "months", "days", "hours", "minutes", "seconds"],
			v = {
				years: {
					ord: 0,
					index: 6,
					until: 10,
					limit: 31536e6,
					label: p[0],
					re: "y",
					wheel: {}
				},
				months: {
					ord: 1,
					index: 5,
					until: 11,
					limit: 2592e6,
					label: p[1],
					re: "m",
					wheel: {}
				},
				days: {
					ord: 2,
					index: 4,
					until: 31,
					limit: 864e5,
					label: p[2],
					re: "d",
					wheel: {}
				},
				hours: {
					ord: 3,
					index: 3,
					until: 23,
					limit: 36e5,
					label: p[3],
					re: "h",
					wheel: {}
				},
				minutes: {
					ord: 4,
					index: 2,
					until: 59,
					limit: 6e4,
					label: p[4],
					re: "i",
					wheel: {}
				},
				seconds: {
					ord: 5,
					index: 1,
					until: 59,
					limit: 1e3,
					label: p[5],
					re: "s",
					wheel: {}
				}
			}, g = [],
			x = h.steps || [],
			T = {}, y = "seconds",
			_ = h.defaultValue || Math.max(h.min, Math.min(0, h.max)),
			w = [
				[]
			];
		return Ee(b)
			.each(function(e, t) {
			(o = f.search(new RegExp(v[t].re, "i"))) > -1 && (g.push({
				o: o,
				v: t
			}), v[t].index > v[y].index && (y = t))
		}), g.sort(function(e, t) {
			return e.o > t.o ? 1 : -1
		}), Ee.each(g, function(e, t) {
			T[t.v] = e + 1, w[0].push(v[t.v].wheel)
		}), c = t(h.min), u = t(h.max), Ee.each(g, function(e, t) {
			a(t.v)
		}), e.getVal = function(t, a) {
			return a ? e._getVal(t) : e._hasValue || t ? s(e.getArrayVal(t)) : null
		}, {
			showLabel: !0,
			wheels: w,
			compClass: "mbsc-ts",
			parseValue: function(e) {
				var a, n = [];
				return d(e) || !e ? (l = t(e || _), Ee.each(g, function(e, t) {
					n.push(l[t.v])
				})) : Ee.each(g, function(t, s) {
					a = new RegExp("(\\d+)\\s?(" + h.labels[v[s.v].ord] + "|" + h.labelsShort[v[s.v].ord] + ")", "gi")
						.exec(e), n.push(a ? a[1] : 0)
				}), Ee(n)
					.each(function(e, t) {
					n[e] = r(t, x[e] || 1)
				}), n
			},
			formatValue: function(e) {
				var t = "";
				return Ee.each(g, function(a, n) {
					t += +e[a] ? e[a] + " " + v[n.v].label + " " : ""
				}), t ? t.replace(/\s+$/g, "") : 0
			},
			validate: function(a) {
				var n, r, i, o, l = a.values,
					d = a.direction,
					m = [],
					h = !0,
					f = !0;
				return Ee(b)
					.each(function(a, p) {
					if (void 0 !== T[p]) {
						if (i = T[p] - 1, m[i] = [], o = {}, p != y) {
							if (h) for (r = u[p] + 1; r <= v[p].until; r++) o[r] = !0;
							if (f) for (r = 0; r < c[p]; r++) o[r] = !0
						}
						l[i] = e.getValidValue(i, l[i], d, o), n = t(s(l)), h = h && n[p] == u[p], f = f && n[p] == c[p], Ee.each(o, function(e) {
							m[i].push(e)
						})
					}
				}), {
					disabled: m
				}
			}
		}
	}, he.presets.scroller.treelist = he.presets.scroller.list, he.presetShort("list"), he.presetShort("treelist"), he.i18n.ar = {
		rtl: !0,
		setText: "تعيين",
		cancelText: "إلغاء",
		clearText: "مسح",
		selectedText: "{count} المحدد",
		dateFormat: "dd/mm/yy",
		dayNames: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
		dayNamesShort: ["أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت"],
		dayNamesMin: ["ح", "ن", "ث", "ر", "خ", "ج", "س"],
		dayText: "يوم",
		hourText: "ساعات",
		minuteText: "الدقائق",
		monthNames: ["كانون الثاني", "شهر فبراير", "مارس", "أبريل", "قد", "يونيو", "يوليو", "أغسطس", "سبتمبر", "شهر اكتوبر", "شهر نوفمبر", "ديسمبر"],
		monthNamesShort: ["كانون الثاني", "شهر فبراير", "مارس", "أبريل", "قد", "يونيو", "يوليو", "أغسطس", "سبتمبر", "شهر اكتوبر", "شهر نوفمبر", "ديسمبر"],
		monthText: "شهر",
		secText: "ثواني",
		amText: "ص",
		pmText: "م",
		timeFormat: "hh:ii A",
		yearText: "عام",
		nowText: "الآن",
		firstDay: 0,
		dateText: "تاريخ",
		timeText: "وقت",
		calendarText: "التقويم",
		closeText: "إغلاق",
		todayText: "اليوم",
		prevMonthText: "الشهر السابق",
		nextMonthText: "الشهر القادم",
		prevYearText: "السنه السابقة",
		nextYearText: "العام القادم",
		eventText: "الحدث",
		eventsText: "أحداث",
		fromText: "يبدا",
		toText: "ينتهي",
		wholeText: "كامل",
		fractionText: "جزء",
		unitText: "وحدة",
		delimiter: "/",
		decimalSeparator: ".",
		thousandsSeparator: ",",
		labels: ["سنوات", "أشهر", "أيام", "ساعة", "دقائق", "ثواني", ""],
		labelsShort: ["سنوات", "أشهر", "أيام", "ساعة", "دقائق", "ثواني", ""],
		startText: "بدء",
		stopText: "إيقاف",
		resetText: "إعادة ضبط",
		lapText: "الدورة",
		hideText: "إخفاء",
		offText: "إيقاف",
		onText: "تشغيل",
		backText: "رجوع",
		undoText: "تراجع"
	}, he.i18n.bg = {
		setText: "Задаване",
		cancelText: "Отмяна",
		clearText: "Изчистване",
		selectedText: "{count} подбран",
		dateFormat: "dd.mm.yy",
		dayNames: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
		dayNamesShort: ["Нед", "Пон", "Вто", "Сря", "Чет", "Пет", "Съб"],
		dayNamesMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Съ"],
		dayText: "ден",
		delimiter: ".",
		hourText: "час",
		minuteText: "минута",
		monthNames: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
		monthNamesShort: ["Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек"],
		monthText: "месец",
		secText: "секунди",
		timeFormat: "H:ii",
		yearText: "година",
		nowText: "Сега",
		pmText: "pm",
		amText: "am",
		firstDay: 1,
		dateText: "Дата",
		timeText: "път",
		calendarText: "календар",
		todayText: "днес",
		prevMonthText: "Предишния месец",
		nextMonthText: "Следващият месец",
		prevYearText: "Предходната година",
		nextYearText: "Следващата година",
		closeText: "затвори",
		eventText: "Събитие",
		eventsText: "Събития",
		fromText: "ОТ",
		toText: "ДО",
		wholeText: "цяло",
		fractionText: "фракция",
		unitText: "единица",
		labels: ["Години", "месеца", "дни", "часа", "минути", "секунди", ""],
		labelsShort: ["Години", "месеца", "дни", "часа", "минути", "секунди", ""],
		startText: "Старт",
		stopText: "Стоп",
		resetText: "Нулиране",
		lapText: "Обиколка",
		hideText: "крия",
		backText: "връщане",
		undoText: "ОТМЯНА",
		offText: "ИЗКЛ",
		onText: "ВКЛ",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.ca = {
		setText: "Acceptar",
		cancelText: "Cancel·lar",
		clearText: "Esborrar",
		selectedText: "{count} seleccionat",
		selectedPluralText: "{count} seleccionats",
		dateFormat: "dd/mm/yy",
		dayNames: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"],
		dayNamesShort: ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"],
		dayNamesMin: ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"],
		dayText: "Dia",
		hourText: "Hores",
		minuteText: "Minuts",
		monthNames: ["Gener", "Febrer", "Mar&ccedil;", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"],
		monthNamesShort: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"],
		monthText: "Mes",
		secText: "Segons",
		timeFormat: "HH:ii",
		yearText: "Any",
		nowText: "Ara",
		pmText: "pm",
		amText: "am",
		todayText: "Avui",
		firstDay: 1,
		dateText: "Data",
		timeText: "Temps",
		calendarText: "Calendari",
		closeText: "Tancar",
		fromText: "Iniciar",
		toText: "Final",
		wholeText: "Sencer",
		fractionText: "Fracció",
		unitText: "Unitat",
		labels: ["Anys", "Mesos", "Dies", "Hores", "Minuts", "Segons", ""],
		labelsShort: ["Anys", "Mesos", "Dies", "Hrs", "Mins", "Secs", ""],
		startText: "Iniciar",
		stopText: "Aturar",
		resetText: "Reiniciar",
		lapText: "Volta",
		hideText: "Amagar",
		backText: "Enrere",
		undoText: "Desfés",
		offText: "No",
		onText: "Si"
	}, he.i18n.cs = {
		setText: "Zadej",
		cancelText: "Storno",
		clearText: "Vymazat",
		selectedText: "Označený: {count}",
		dateFormat: "dd.mm.yy",
		dayNames: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"],
		dayNamesShort: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
		dayNamesMin: ["N", "P", "Ú", "S", "Č", "P", "S"],
		dayText: "Den",
		hourText: "Hodiny",
		minuteText: "Minuty",
		monthNames: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
		monthNamesShort: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Spr", "Zář", "Říj", "Lis", "Pro"],
		monthText: "Měsíc",
		secText: "Sekundy",
		timeFormat: "HH:ii",
		yearText: "Rok",
		nowText: "Teď",
		amText: "am",
		pmText: "pm",
		todayText: "Dnes",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Čas",
		calendarText: "Kalendář",
		closeText: "Zavřít",
		fromText: "Začátek",
		toText: "Konec",
		wholeText: "Celý",
		fractionText: "Část",
		unitText: "Jednotka",
		labels: ["Roky", "Měsíce", "Dny", "Hodiny", "Minuty", "Sekundy", ""],
		labelsShort: ["Rok", "Měs", "Dny", "Hod", "Min", "Sec", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Resetovat",
		lapText: "Etapa",
		hideText: "Schovat",
		backText: "Zpět",
		undoText: "Zpět",
		offText: "O",
		onText: "I",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.da = {
		setText: "Sæt",
		cancelText: "Annuller",
		clearText: "Ryd",
		selectedText: "{count} valgt",
		selectedPluralText: "{count} valgt",
		dateFormat: "dd/mm/yy",
		dayNames: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
		dayNamesShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
		dayNamesMin: ["S", "M", "T", "O", "T", "F", "L"],
		dayText: "Dag",
		hourText: "Timer",
		minuteText: "Minutter",
		monthNames: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"],
		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
		monthText: "Måned",
		secText: "Sekunder",
		amText: "am",
		pmText: "pm",
		timeFormat: "HH.ii",
		yearText: "År",
		nowText: "Nu",
		todayText: "I dag",
		firstDay: 1,
		dateText: "Dato",
		timeText: "Tid",
		calendarText: "Kalender",
		closeText: "Luk",
		fromText: "Start",
		toText: "Slut",
		wholeText: "Hele",
		fractionText: "Dele",
		unitText: "Enhed",
		labels: ["År", "Måneder", "Dage", "Timer", "Minutter", "Sekunder", ""],
		labelsShort: ["År", "Mdr", "Dg", "Timer", "Min", "Sek", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Nulstil",
		lapText: "Omgang",
		hideText: "Skjul",
		offText: "Fra",
		onText: "Til",
		backText: "Tilbage",
		undoText: "Fortryd"
	}, he.i18n.de = {
		setText: "OK",
		cancelText: "Abbrechen",
		clearText: "Löschen",
		selectedText: "{count} ausgewählt",
		dateFormat: "dd.mm.yy",
		dayNames: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
		dayNamesShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
		dayNamesMin: ["S", "M", "D", "M", "D", "F", "S"],
		dayText: "Tag",
		delimiter: ".",
		hourText: "Stunde",
		minuteText: "Minuten",
		monthNames: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
		monthNamesShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
		monthText: "Monat",
		secText: "Sekunden",
		timeFormat: "HH:ii",
		yearText: "Jahr",
		nowText: "Jetzt",
		pmText: "pm",
		amText: "am",
		todayText: "Heute",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Zeit",
		calendarText: "Kalender",
		closeText: "Schließen",
		fromText: "Von",
		toText: "Um",
		wholeText: "Ganze Zahl",
		fractionText: "Bruchzahl",
		unitText: "Maßeinheit",
		labels: ["Jahre", "Monate", "Tage", "Stunden", "Minuten", "Sekunden", ""],
		labelsShort: ["Jahr.", "Mon.", "Tag.", "Std.", "Min.", "Sek.", ""],
		startText: "Starten",
		stopText: "Stoppen",
		resetText: "Zurücksetzen",
		lapText: "Lap",
		hideText: "Ausblenden",
		backText: "Zurück",
		undoText: "Rückgängig machen",
		offText: "Aus",
		onText: "Ein",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.el = {
		setText: "Ορισμος",
		cancelText: "Ακυρωση",
		clearText: "Διαγραφη",
		selectedText: "{count} επιλεγμένα",
		dateFormat: "dd/mm/yy",
		dayNames: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
		dayNamesShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
		dayNamesMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"],
		dayText: "ημέρα",
		delimiter: "/",
		hourText: "ώρα",
		minuteText: "λεπτό",
		monthNames: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
		monthNamesShort: ["Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ"],
		monthText: "Μήνας",
		secText: "δευτερόλεπτα",
		timeFormat: "H:ii",
		yearText: "έτος",
		nowText: "τώρα",
		pmText: "μμ",
		amText: "πμ",
		firstDay: 1,
		dateText: "Ημερομηνία",
		timeText: "φορά",
		calendarText: "Ημερολόγιο",
		todayText: "Σήμερα",
		prevMonthText: "Προηγούμενο μήνα",
		nextMonthText: "Επόμενο μήνα",
		prevYearText: "Προηγούμενο έτος",
		nextYearText: "Επόμενο έτος",
		closeText: "Κλείσιμο",
		eventText: "Γεγονότα",
		eventsText: "Γεγονότα",
		fromText: "Αρχή",
		toText: "Τέλος",
		wholeText: "Ολόκληρος",
		fractionText: "κλάσμα",
		unitText: "Μονάδα",
		labels: ["Χρόνια", "Μήνες", "Ημέρες", "Ωρες", "Λεπτά", "δευτερόλεπτα", ""],
		labelsShort: ["Χρόνια", "Μήνες", "Ημέρες", "Ωρες", "Λεπτά", "δευτ", ""],
		startText: "΄Εναρξη",
		stopText: "Διακοπή",
		resetText: "Επαναφορά",
		lapText: "Γύρος",
		hideText: "κρύβω",
		backText: "Πίσω",
		undoText: "Αναιρεση",
		offText: "Ανενεργό",
		onText: "Ενεργό",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n["en-GB"] = he.i18n["en-UK"] = {
		dateFormat: "dd/mm/yy",
		timeFormat: "HH:ii"
	}, he.i18n.es = {
		setText: "Aceptar",
		cancelText: "Cancelar",
		clearText: "Borrar",
		selectedText: "{count} seleccionado",
		selectedPluralText: "{count} seleccionados",
		dateFormat: "dd/mm/yy",
		dayNames: ["Domingo", "Lunes", "Martes", "Mi&#xE9;rcoles", "Jueves", "Viernes", "S&#xE1;bado"],
		dayNamesShort: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "S&#xE1;"],
		dayNamesMin: ["D", "L", "M", "M", "J", "V", "S"],
		dayText: "D&#237;a",
		hourText: "Horas",
		minuteText: "Minutos",
		monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
		monthNamesShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
		monthText: "Mes",
		secText: "Segundos",
		timeFormat: "HH:ii",
		yearText: "A&ntilde;o",
		nowText: "Ahora",
		pmText: "pm",
		amText: "am",
		todayText: "Hoy",
		firstDay: 1,
		dateText: "Fecha",
		timeText: "Tiempo",
		calendarText: "Calendario",
		closeText: "Cerrar",
		fromText: "Iniciar",
		toText: "Final",
		wholeText: "Entero",
		fractionText: "Fracción",
		unitText: "Unidad",
		labels: ["Años", "Meses", "Días", "Horas", "Minutos", "Segundos", ""],
		labelsShort: ["Año", "Mes", "Día", "Hora", "Min", "Seg", ""],
		startText: "Iniciar",
		stopText: "Deténgase",
		resetText: "Reinicializar",
		lapText: "Lap",
		hideText: "Esconder",
		backText: "Atrás",
		undoText: "Deshacer",
		offText: "No",
		onText: "Sí",
		decimalSeparator: ",",
		thousandsSeparator: " "
	};
	var Ea = {
		gDaysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
		jDaysInMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]
	};
	Ea.jalaliToGregorian = function(e, t, a) {
		e = parseInt(e), t = parseInt(t), a = parseInt(a);
		var n, s = e - 979,
			r = t - 1,
			i = a - 1,
			o = 365 * s + 8 * parseInt(s / 33) + parseInt((s % 33 + 3) / 4);
		for (n = 0; n < r; ++n) o += Ea.jDaysInMonth[n];
		o += i;
		var l = o + 79,
			c = 1600 + 400 * parseInt(l / 146097);
		l %= 146097;
		var d = !0;
		for (l >= 36525 && (l--, c += 100 * parseInt(l / 36524), l %= 36524, l >= 365 ? l++ : d = !1), c += 4 * parseInt(l / 1461), l %= 1461, l >= 366 && (d = !1, l--, c += parseInt(l / 365), l %= 365), n = 0; l >= Ea.gDaysInMonth[n] + (1 == n && d); n++) l -= Ea.gDaysInMonth[n] + (1 == n && d);
		return [c, n + 1, l + 1]
	}, Ea.checkDate = function(e, t, a) {
		return !(e < 0 || e > 32767 || t < 1 || t > 12 || a < 1 || a > Ea.jDaysInMonth[t - 1] + (12 == t && (e - 979) % 33 % 4 == 0))
	}, Ea.gregorianToJalali = function(e, t, a) {
		e = parseInt(e), t = parseInt(t), a = parseInt(a);
		var n, s = e - 1600,
			r = t - 1,
			i = a - 1,
			o = 365 * s + parseInt((s + 3) / 4) - parseInt((s + 99) / 100) + parseInt((s + 399) / 400);
		for (n = 0; n < r; ++n) o += Ea.gDaysInMonth[n];
		r > 1 && (s % 4 == 0 && s % 100 != 0 || s % 400 == 0) && ++o, o += i;
		var l = o - 79,
			c = parseInt(l / 12053);
		l %= 12053;
		var d = 979 + 33 * c + 4 * parseInt(l / 1461);
		for (l %= 1461, l >= 366 && (d += parseInt((l - 1) / 365), l = (l - 1) % 365), n = 0; n < 11 && l >= Ea.jDaysInMonth[n]; ++n) l -= Ea.jDaysInMonth[n];
		return [d, n + 1, l + 1]
	}, he.i18n.fa = {
		setText: "تاييد",
		cancelText: "انصراف",
		clearText: "واضح ",
		selectedText: "{count} منتخب",
		dateFormat: "yy/mm/dd",
		dayNames: ["يکشنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه"],
		dayNamesShort: ["ی", "د", "س", "چ", "پ", "ج", "ش"],
		dayNamesMin: ["ی", "د", "س", "چ", "پ", "ج", "ش"],
		dayText: "روز",
		hourText: "ساعت",
		minuteText: "دقيقه",
		monthNames: ["فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"],
		monthNamesShort: ["فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"],
		monthText: "ماه",
		secText: "ثانيه",
		timeFormat: "HH:ii",
		timeWheels: "iiHH",
		yearText: "سال",
		nowText: "اکنون",
		amText: "ب",
		pmText: "ص",
		todayText: "امروز",
		getYear: function(e) {
			return Ea.gregorianToJalali(e.getFullYear(), e.getMonth() + 1, e.getDate())[0]
		},
		getMonth: function(e) {
			return --Ea.gregorianToJalali(e.getFullYear(), e.getMonth() + 1, e.getDate())[1]
		},
		getDay: function(e) {
			return Ea.gregorianToJalali(e.getFullYear(), e.getMonth() + 1, e.getDate())[2]
		},
		getDate: function(e, t, a, n, s, r, i) {
			t < 0 && (e += Math.floor(t / 12), t = 12 + t % 12), t > 11 && (e += Math.floor(t / 12), t %= 12);
			var o = Ea.jalaliToGregorian(e, +t + 1, a);
			return new Date(o[0], o[1] - 1, o[2], n || 0, s || 0, r || 0, i || 0)
		},
		getMaxDayOfMonth: function(e, t) {
			for (var a = 31; !1 === Ea.checkDate(e, t + 1, a);) a--;
			return a
		},
		firstDay: 6,
		rtl: !0,
		dateText: "تاریخ ",
		timeText: "زمان ",
		calendarText: "تقویم",
		closeText: "نزدیک",
		fromText: "شروع ",
		toText: "پایان",
		wholeText: "تمام",
		fractionText: "کسر",
		unitText: "واحد",
		labels: ["سال", "ماه", "روز", "ساعت", "دقیقه", "ثانیه", ""],
		labelsShort: ["سال", "ماه", "روز", "ساعت", "دقیقه", "ثانیه", ""],
		startText: "شروع",
		stopText: "پايان",
		resetText: "تنظیم مجدد",
		lapText: "Lap",
		hideText: "پنهان کردن",
		backText: "پشت",
		undoText: "واچیدن"
	}, he.i18n.fi = {
		setText: "Aseta",
		cancelText: "Peruuta",
		clearText: "Tyhjennä",
		selectedText: "{count} valita",
		dateFormat: "d. MM yy",
		dayNames: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviiko", "Torstai", "Perjantai", "Lauantai"],
		dayNamesShort: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"],
		dayNamesMin: ["S", "M", "T", "K", "T", "P", "L"],
		dayText: "Päivä",
		delimiter: ".",
		hourText: "Tuntia",
		minuteText: "Minuutti",
		monthNames: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"],
		monthNamesShort: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"],
		monthText: "Kuukausi",
		secText: "Sekunda",
		timeFormat: "H:ii",
		yearText: "Vuosi",
		nowText: "Nyt",
		pmText: "pm",
		amText: "am",
		firstDay: 1,
		dateText: "Päiväys",
		timeText: "Aika",
		calendarText: "Kalenteri",
		todayText: "Tänään",
		prevMonthText: "Edellinen kuukausi",
		nextMonthText: "Ensi kuussa",
		prevYearText: "Edellinen vuosi",
		nextYearText: "Ensi vuosi",
		closeText: "Sulje",
		eventText: "Tapahtumia",
		eventsText: "Tapahtumia",
		fromText: "Alkaa",
		toText: "Päättyy",
		wholeText: "Kokonainen",
		fractionText: "Murtoluku",
		unitText: "Yksikkö",
		labels: ["Vuosi", "Kuukausi", "Päivä", "Tunnin", "Minuutti", "sekuntia", ""],
		labelsShort: ["Vuo", "Kuu", "Päi", "Tun", "Min", "Sek", ""],
		startText: "Käynnistys",
		stopText: "Seis",
		resetText: "Aseta uudelleen",
		lapText: "Kierros",
		hideText: "Vuota",
		backText: "Edellinen",
		undoText: "Kumoa",
		offText: "Pois",
		onText: "Päällä",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.fr = {
		setText: "Terminer",
		cancelText: "Annuler",
		clearText: "Effacer",
		selectedText: "{count} sélectionné",
		selectedPluralText: "{count} sélectionnés",
		dateFormat: "dd/mm/yy",
		dayNames: ["&#68;imanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
		dayNamesShort: ["&#68;im.", "Lun.", "Mar.", "Mer.", "Jeu.", "Ven.", "Sam."],
		dayNamesMin: ["&#68;", "L", "M", "M", "J", "V", "S"],
		dayText: "Jour",
		monthText: "Mois",
		monthNames: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
		monthNamesShort: ["Janv.", "Févr.", "Mars", "Avril", "Mai", "Juin", "Juil.", "Août", "Sept.", "Oct.", "Nov.", "Déc."],
		hourText: "Heures",
		minuteText: "Minutes",
		secText: "Secondes",
		timeFormat: "HH:ii",
		yearText: "Année",
		nowText: "Maintenant",
		pmText: "pm",
		amText: "am",
		todayText: "Aujourd'hui",
		firstDay: 1,
		dateText: "Date",
		timeText: "Heure",
		calendarText: "Calendrier",
		closeText: "Fermer",
		fromText: "Démarrer",
		toText: "Fin",
		wholeText: "Entier",
		fractionText: "Fraction",
		unitText: "Unité",
		labels: ["Ans", "Mois", "Jours", "Heures", "Minutes", "Secondes", ""],
		labelsShort: ["Ans", "Mois", "Jours", "Hrs", "Min", "Sec", ""],
		startText: "Démarrer",
		stopText: "Arrêter",
		resetText: "Réinitialiser",
		lapText: "Lap",
		hideText: "Cachez",
		backText: "Retour",
		undoText: "Annuler",
		offText: "Non",
		onText: "Oui",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.he = {
		rtl: !0,
		setText: "שמירה",
		cancelText: "ביטול",
		clearText: "נקה",
		selectedText: "{count} נבחר",
		selectedPluralText: "{count} נבחרו",
		dateFormat: "dd/mm/yy",
		dayNames: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"],
		dayNamesShort: ["א'", "ב'", "ג'", "ד'", "ה'", "ו'", "ש'"],
		dayNamesMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש"],
		dayText: "יום",
		hourText: "שעות",
		minuteText: "דקות",
		monthNames: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
		monthNamesShort: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"],
		monthText: "חודש",
		secText: "שניות",
		amText: "am",
		pmText: "pm",
		timeFormat: "HH:ii",
		timeWheels: "iiHH",
		yearText: "שנה",
		nowText: "עכשיו",
		firstDay: 0,
		dateText: "תאריך",
		timeText: "זמן",
		calendarText: "תאריכון",
		closeText: "סגירה",
		todayText: "היום",
		eventText: "מִקרֶה",
		eventsText: "מִקרֶה",
		fromText: "התחלה",
		toText: "סיום",
		wholeText: "כֹּל",
		fractionText: "שבריר",
		unitText: "יחידה",
		labels: ["שנים", "חודשים", "ימים", "שעות", "דקות", "שניים", ""],
		labelsShort: ["שנים", "חודשים", "ימים", "שעות", "דקות", "שניים", ""],
		startText: "התחל",
		stopText: "עצור",
		resetText: "אתחול",
		lapText: "הקפה",
		hideText: "הסתר",
		offText: "כיבוי",
		onText: "הפעלה",
		backText: "חזור",
		undoText: "ביטול פעולה"
	}, he.i18n.hi = {
		setText: "सैट करें",
		cancelText: "रद्द करें",
		clearText: "साफ़ को",
		selectedText: "{count} चयनित",
		dateFormat: "dd/mm/yy",
		dayNames: ["रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"],
		dayNamesShort: ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
		dayNamesMin: ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
		dayText: "दिन",
		delimiter: ".",
		hourText: "घंटा",
		minuteText: "मिनट",
		monthNames: ["जनवरी ", "फरवरी", "मार्च", "अप्रेल", "मई", "जून", "जूलाई", "अगस्त ", "सितम्बर", "अक्टूबर", "नवम्बर", "दिसम्बर"],
		monthNamesShort: ["जन", "फर", "मार्च", "अप्रेल", "मई", "जून", "जूलाई", "अग", "सित", "अक्ट", "नव", "दि"],
		monthText: "महीना",
		secText: "सेकंड",
		timeFormat: "H:ii",
		yearText: "साल",
		nowText: "अब",
		pmText: "अपराह्न",
		amText: "पूर्वाह्न",
		firstDay: 1,
		dateText: "तिथि",
		timeText: "समय",
		calendarText: "कैलेंडर",
		todayText: "आज",
		prevMonthText: "पिछ्ला महिना",
		nextMonthText: "अगले महीने",
		prevYearText: "पिछला साल",
		nextYearText: "अगले वर्ष",
		closeText: "बंद",
		eventText: "इवेट३",
		eventsText: "इवेट३",
		fromText: "से",
		toText: "तक",
		wholeText: "समूचा",
		fractionText: "अंश",
		unitText: "इकाई",
		labels: ["साल", "महीने", "दिन", "घंटे", "मिनट", "सेकंड", ""],
		labelsShort: ["साल", "महीने", "दिन", "घंटे", "मिनट", "सेकंड", ""],
		startText: "प्रारंभ",
		stopText: "रोकें",
		resetText: "रीसेट करें",
		lapText: "लैप",
		hideText: "छिपाना",
		backText: "वापस",
		undoText: "वापस लाएं",
		offText: "बंद",
		onText: "चालू",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.hr = {
		setText: "Postavi",
		cancelText: "Izlaz",
		clearText: "Izbriši",
		selectedText: "{count} odabran",
		dateFormat: "dd.mm.yy",
		dayNames: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"],
		dayNamesShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
		dayNamesMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"],
		dayText: "Dan",
		delimiter: ".",
		hourText: "Sat",
		minuteText: "Minuta",
		monthNames: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"],
		monthNamesShort: ["Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro"],
		monthText: "Mjesec",
		secText: "Sekunda",
		timeFormat: "H:ii",
		yearText: "Godina",
		nowText: "Sada",
		pmText: "pm",
		amText: "am",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Vrijeme",
		calendarText: "Kalendar",
		todayText: "Danas",
		prevMonthText: "Prethodni mjesec",
		nextMonthText: "Sljedeći mjesec",
		prevYearText: "Prethodni godina",
		nextYearText: "Slijedeće godine",
		closeText: "Zatvori",
		eventText: "Događaj",
		eventsText: "događaja",
		fromText: "Počinje",
		toText: "Završava",
		wholeText: "Cjelina",
		fractionText: "Frakcija",
		unitText: "Jedinica",
		labels: ["godina", "mjesec", "dan", "sat", "minuta", "sekunda", ""],
		labelsShort: ["god", "mje", "dan", "sat", "min", "sec", ""],
		startText: "Početak",
		stopText: "Prekid",
		resetText: "Resetiraj",
		lapText: "Ciklus",
		hideText: "Sakriti",
		backText: "Natrag",
		undoText: "Poništavanje",
		offText: "Uklj.",
		onText: "Isklj.",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.hu = {
		setText: "OK",
		cancelText: "Mégse",
		clearText: "Törlés",
		selectedText: "{count} kiválasztva",
		dateFormat: "yy.mm.dd.",
		dayNames: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"],
		dayNamesShort: ["Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo"],
		dayNamesMin: ["V", "H", "K", "Sz", "Cs", "P", "Sz"],
		dayText: "Nap",
		delimiter: ".",
		hourText: "Óra",
		minuteText: "Perc",
		monthNames: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"],
		monthNamesShort: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec"],
		monthText: "Hónap",
		secText: "Másodperc",
		timeFormat: "H:ii",
		yearText: "Év",
		nowText: "Most",
		pmText: "pm",
		amText: "am",
		firstDay: 1,
		dateText: "Dátum",
		timeText: "Idő",
		calendarText: "Naptár",
		todayText: "Ma",
		prevMonthText: "Előző hónap",
		nextMonthText: "Következő hónap",
		prevYearText: "Előző év",
		nextYearText: "Következő év",
		closeText: "Bezár",
		eventText: "esemény",
		eventsText: "esemény",
		fromText: "Eleje",
		toText: "Vége",
		wholeText: "Egész",
		fractionText: "Tört",
		unitText: "Egység",
		labels: ["Év", "Hónap", "Nap", "Óra", "Perc", "Másodperc", ""],
		labelsShort: ["Év", "Hó.", "Nap", "Óra", "Perc", "Mp.", ""],
		startText: "Indít",
		stopText: "Megállít",
		resetText: "Visszaállít",
		lapText: "Lap",
		hideText: "Elrejt",
		backText: "Vissza",
		undoText: "Visszavon",
		offText: "Ki",
		onText: "Be",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.it = {
		setText: "OK",
		cancelText: "Annulla",
		clearText: "Chiarire",
		selectedText: "{count} selezionato",
		selectedPluralText: "{count} selezionati",
		dateFormat: "dd/mm/yy",
		dayNames: ["Domenica", "Lunedì", "Mertedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
		dayNamesShort: ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"],
		dayNamesMin: ["D", "L", "M", "M", "G", "V", "S"],
		dayText: "Giorno",
		hourText: "Ore",
		minuteText: "Minuti",
		monthNames: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
		monthNamesShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
		monthText: "Mese",
		secText: "Secondi",
		timeFormat: "HH:ii",
		yearText: "Anno",
		nowText: "Ora",
		pmText: "pm",
		amText: "am",
		todayText: "Oggi",
		firstDay: 1,
		dateText: "Data",
		timeText: "Volta",
		calendarText: "Calendario",
		closeText: "Chiudere",
		fromText: "Inizio",
		toText: "Fine",
		wholeText: "Intero",
		fractionText: "Frazione",
		unitText: "Unità",
		labels: ["Anni", "Mesi", "Giorni", "Ore", "Minuti", "Secondi", ""],
		labelsShort: ["Anni", "Mesi", "Gio", "Ore", "Min", "Sec", ""],
		startText: "Inizio",
		stopText: "Arresto",
		resetText: "Ripristina",
		lapText: "Lap",
		hideText: "Nascondi",
		backText: "Indietro",
		undoText: "Annulla",
		offText: "Via",
		onText: "Su",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.ja = {
		setText: "セット",
		cancelText: "キャンセル",
		clearText: "クリア",
		selectedText: "{count} 選択",
		dateFormat: "yy年mm月dd日",
		dayNames: ["日", "月", "火", "水", "木", "金", "土"],
		dayNamesShort: ["日", "月", "火", "水", "木", "金", "土"],
		dayNamesMin: ["日", "月", "火", "水", "木", "金", "土"],
		dayText: "日",
		hourText: "時",
		minuteText: "分",
		monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
		monthNamesShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
		monthText: "月",
		secText: "秒",
		timeFormat: "HH:ii",
		yearText: "年",
		nowText: "今",
		pmText: "午後",
		amText: "午前",
		yearSuffix: "年",
		monthSuffix: "月",
		daySuffix: "日",
		todayText: "今日",
		dateText: "日付",
		timeText: "時間",
		calendarText: "カレンダー",
		closeText: "クローズ",
		fromText: "開始",
		toText: "終わり",
		wholeText: "全数",
		fractionText: "分数",
		unitText: "単位",
		labels: ["年間", "月間", "日間", "時間", "分", "秒", ""],
		labelsShort: ["年間", "月間", "日間", "時間", "分", "秒", ""],
		startText: "開始",
		stopText: "停止",
		resetText: "リセット",
		lapText: "ラップ",
		hideText: "隠す",
		backText: "バック",
		undoText: "アンドゥ"
	}, he.i18n.ko = {
		setText: "설정",
		cancelText: "취소",
		clearText: "삭제",
		selectedText: "{count} 선택된",
		dateFormat: "yy-mm-dd",
		dayNames: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
		dayNamesShort: ["일", "월", "화", "수", "목", "금", "토"],
		dayNamesMin: ["일", "월", "화", "수", "목", "금", "토"],
		dayText: "일",
		delimiter: "-",
		hourText: "시간",
		minuteText: "분",
		monthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
		monthNamesShort: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
		monthText: "달",
		secText: "초",
		timeFormat: "H:ii",
		yearText: "년",
		nowText: "지금",
		pmText: "오후",
		amText: "오전",
		firstDay: 0,
		dateText: "날짜",
		timeText: "시간",
		calendarText: "일정",
		todayText: "오늘",
		prevMonthText: "이전 달",
		nextMonthText: "다음 달",
		prevYearText: "이전 년",
		nextYearText: "다음 년",
		closeText: "닫기",
		eventText: "이벤트",
		eventsText: "이벤트",
		fromText: "시작",
		toText: "종료",
		wholeText: "정수",
		fractionText: "분수",
		unitText: "단위",
		labels: ["년", "달", "일", "시간", "분", "초", ""],
		labelsShort: ["년", "달", "일", "시간", "분", "초", ""],
		startText: "시작",
		stopText: "중지 ",
		resetText: "초기화",
		lapText: "기록",
		hideText: "숨는 장소",
		backText: "뒤로",
		undoText: "실행취소",
		offText: "끔",
		onText: "켬",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.lt = {
		setText: "OK",
		cancelText: "Atšaukti",
		clearText: "Išvalyti",
		selectedText: "Pasirinktas {count}",
		selectedPluralText: "Pasirinkti {count}",
		dateFormat: "yy-mm-dd",
		dayNames: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
		dayNamesShort: ["S", "Pr", "A", "T", "K", "Pn", "Š"],
		dayNamesMin: ["S", "Pr", "A", "T", "K", "Pn", "Š"],
		dayText: "Diena",
		hourText: "Valanda",
		minuteText: "Minutes",
		monthNames: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"],
		monthNamesShort: ["Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugp", "Rugs", "Spa", "Lap", "Gruo"],
		monthText: "Mėnuo",
		secText: "Sekundes",
		amText: "am",
		pmText: "pm",
		timeFormat: "HH:ii",
		yearText: "Metai",
		nowText: "Dabar",
		todayText: "Šiandien",
		firstDay: 1,
		dateText: "Data",
		timeText: "Laikas",
		calendarText: "Kalendorius",
		closeText: "Uždaryti",
		fromText: "Nuo",
		toText: "Iki",
		wholeText: "Visas",
		fractionText: "Frakcija",
		unitText: "Vienetas",
		labels: ["Metai", "Mėnesiai", "Dienos", "Valandos", "Minutes", "Sekundes", ""],
		labelsShort: ["m", "mėn.", "d", "h", "min", "s", ""],
		startText: "Pradėti",
		stopText: "Sustabdyti",
		resetText: "Išnaujo",
		lapText: "Ratas",
		hideText: "Slėpti",
		backText: "Atgal",
		undoText: "Anuliuoti",
		offText: "Išj.",
		onText: "Įj.",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.nl = {
		setText: "Instellen",
		cancelText: "Annuleren",
		clearText: "Duidelijk",
		selectedText: "{count} gekozen",
		dateFormat: "dd-mm-yy",
		dayNames: ["zondag", "maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
		dayNamesShort: ["zo", "ma", "di", "wo", "do", "vr", "za"],
		dayNamesMin: ["z", "m", "d", "w", "d", "v", "z"],
		dayText: "Dag",
		hourText: "Uur",
		minuteText: "Minuten",
		monthNames: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
		monthNamesShort: ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"],
		monthText: "Maand",
		secText: "Seconden",
		timeFormat: "HH:ii",
		yearText: "Jaar",
		nowText: "Nu",
		pmText: "pm",
		amText: "am",
		todayText: "Vandaag",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Tijd",
		calendarText: "Kalender",
		closeText: "Sluiten",
		fromText: "Start",
		toText: "Einde",
		wholeText: "geheel",
		fractionText: "fractie",
		unitText: "eenheid",
		labels: ["Jaren", "Maanden", "Dagen", "Uren", "Minuten", "Seconden", ""],
		labelsShort: ["j", "m", "d", "u", "min", "sec", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Reset",
		lapText: "Ronde",
		hideText: "Verbergen",
		backText: "Terug",
		undoText: "Onged. maken",
		offText: "Uit",
		onText: "Aan",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.no = {
		setText: "OK",
		cancelText: "Avbryt",
		clearText: "Tømme",
		selectedText: "{count} valgt",
		dateFormat: "dd.mm.yy",
		dayNames: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
		dayNamesShort: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
		dayNamesMin: ["S", "M", "T", "O", "T", "F", "L"],
		dayText: "Dag",
		delimiter: ".",
		hourText: "Time",
		minuteText: "Minutt",
		monthNames: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"],
		monthText: "Måned",
		secText: "Sekund",
		timeFormat: "HH:ii",
		yearText: "År",
		nowText: "Nå",
		pmText: "pm",
		amText: "am",
		todayText: "I dag",
		firstDay: 1,
		dateText: "Dato",
		timeText: "Tid",
		calendarText: "Kalender",
		closeText: "Lukk",
		fromText: "Start",
		toText: "End",
		wholeText: "Hele",
		fractionText: "Fraksjon",
		unitText: "Enhet",
		labels: ["År", "Måneder", "Dager", "Timer", "Minutter", "Sekunder", ""],
		labelsShort: ["År", "Mån", "Dag", "Time", "Min", "Sek", ""],
		startText: "Start",
		stopText: "Stopp",
		resetText: "Tilbakestille",
		lapText: "Runde",
		hideText: "Skjul",
		backText: "Tilbake",
		undoText: "Angre",
		offText: "Av",
		onText: "På",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.pl = {
		setText: "Zestaw",
		cancelText: "Anuluj",
		clearText: "Oczyścić",
		selectedText: "Wybór: {count}",
		dateFormat: "yy-mm-dd",
		dayNames: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
		dayNamesShort: ["Niedz.", "Pon.", "Wt.", "Śr.", "Czw.", "Pt.", "Sob."],
		dayNamesMin: ["N", "P", "W", "Ś", "C", "P", "S"],
		dayText: "Dzień",
		hourText: "Godziny",
		minuteText: "Minuty",
		monthNames: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"],
		monthNamesShort: ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"],
		monthText: "Miesiąc",
		secText: "Sekundy",
		timeFormat: "HH:ii",
		yearText: "Rok",
		nowText: "Teraz",
		amText: "am",
		pmText: "pm",
		todayText: "Dzisiaj",
		firstDay: 1,
		dateText: "Data",
		timeText: "Czas",
		calendarText: "Kalendarz",
		closeText: "Zakończenie",
		fromText: "Rozpoczęcie",
		toText: "Koniec",
		wholeText: "Cały",
		fractionText: "Ułamek",
		unitText: "Jednostka",
		labels: ["Lata", "Miesiąc", "Dni", "Godziny", "Minuty", "Sekundy", ""],
		labelsShort: ["R", "M", "Dz", "Godz", "Min", "Sek", ""],
		startText: "Rozpoczęcie",
		stopText: "Zatrzymać",
		resetText: "Zresetować",
		lapText: "Zakładka",
		hideText: "Ukryć",
		backText: "Wróć",
		undoText: "Cofnij",
		offText: "Wył",
		onText: "Wł",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n["pt-BR"] = {
		setText: "Selecionar",
		cancelText: "Cancelar",
		clearText: "Claro",
		selectedText: "{count} selecionado",
		selectedPluralText: "{count} selecionados",
		dateFormat: "dd/mm/yy",
		dayNames: ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"],
		dayNamesShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
		dayNamesMin: ["D", "S", "T", "Q", "Q", "S", "S"],
		dayText: "Dia",
		hourText: "Hora",
		minuteText: "Minutos",
		monthNames: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
		monthNamesShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
		monthText: "Mês",
		secText: "Segundo",
		timeFormat: "HH:ii",
		yearText: "Ano",
		nowText: "Agora",
		pmText: "pm",
		amText: "am",
		todayText: "Hoje",
		dateText: "Data",
		timeText: "Tempo",
		calendarText: "Calendário",
		closeText: "Fechar",
		fromText: "In&iacute;cio",
		toText: "Fim",
		wholeText: "Inteiro",
		fractionText: "Fração",
		unitText: "Unidade",
		labels: ["Anos", "Meses", "Dias", "Horas", "Minutos", "Segundos", ""],
		labelsShort: ["Ano", "M&ecirc;s", "Dia", "Hora", "Min", "Seg", ""],
		startText: "Começar",
		stopText: "Pare",
		resetText: "Reinicializar",
		lapText: "Lap",
		hideText: "Esconder",
		backText: "Anterior",
		undoText: "Desfazer",
		offText: "Desl",
		onText: "Lig",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n["pt-PT"] = {
		setText: "Seleccionar",
		cancelText: "Cancelar",
		clearText: "Claro",
		selectedText: "{count} selecionado",
		selectedPluralText: "{count} selecionados",
		dateFormat: "dd-mm-yy",
		dayNames: ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "S&aacute;bado"],
		dayNamesShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "S&aacute;b"],
		dayNamesMin: ["D", "S", "T", "Q", "Q", "S", "S"],
		dayText: "Dia",
		hourText: "Horas",
		minuteText: "Minutos",
		monthNames: ["Janeiro", "Fevereiro", "Mar&ccedil;o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
		monthNamesShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
		monthText: "M&ecirc;s",
		secText: "Segundo",
		timeFormat: "HH:ii",
		yearText: "Ano",
		nowText: "Actualizar",
		pmText: "pm",
		amText: "am",
		todayText: "Hoy",
		firstDay: 1,
		dateText: "Data",
		timeText: "Tempo",
		calendarText: "Calend&aacute;rio",
		closeText: "Fechar",
		fromText: "In&iacute;cio",
		toText: "Fim",
		wholeText: "Inteiro",
		fractionText: "Frac&ccedil;&atilde;o",
		unitText: "Unidade",
		labels: ["Anos", "Meses", "Dias", "Horas", "Minutos", "Segundos", ""],
		labelsShort: ["Ano", "M&ecirc;s", "Dia", "Hora", "Min", "Seg", ""],
		startText: "Come&ccedil;ar",
		stopText: "Parar",
		resetText: "Reinicializar",
		lapText: "Lap",
		hideText: "Esconder",
		backText: "Anterior",
		undoText: "Anular",
		offText: "Desl",
		onText: "Lig",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.ro = {
		setText: "Setare",
		cancelText: "Anulare",
		clearText: "Ştergere",
		selectedText: "{count} selectat",
		selectedPluralText: "{count} selectate",
		dateFormat: "dd.mm.yy",
		dayNames: ["Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"],
		dayNamesShort: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"],
		dayNamesMin: ["D", "L", "M", "M", "J", "V", "S"],
		dayText: " Ziua",
		delimiter: ".",
		hourText: " Ore ",
		minuteText: "Minute",
		monthNames: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
		monthNamesShort: ["Ian.", "Feb.", "Mar.", "Apr.", "Mai", "Iun.", "Iul.", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
		monthText: "Luna",
		secText: "Secunde",
		timeFormat: "HH:ii",
		yearText: "Anul",
		nowText: "Acum",
		amText: "am",
		pmText: "pm",
		todayText: "Astăzi",
		firstDay: 1,
		dateText: "Data",
		timeText: "Ora",
		calendarText: "Calendar",
		closeText: "Închidere",
		fromText: "Start",
		toText: "Final",
		wholeText: "Complet",
		fractionText: "Parţial",
		unitText: "Unitate",
		labels: ["Ani", "Luni", "Zile", "Ore", "Minute", "Secunde", ""],
		labelsShort: ["Ani", "Luni", "Zile", "Ore", "Min.", "Sec.", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Resetare",
		lapText: "Tură",
		hideText: "Ascundere",
		backText: "Înapoi",
		undoText: "Anulează",
		offText: "Nu",
		onText: "Da",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n["ru-UA"] = {
		setText: "Установить",
		cancelText: "Отменить",
		clearText: "Очиститьr",
		selectedText: "{count} Вібрать",
		dateFormat: "dd.mm.yy",
		dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
		dayNamesShort: ["вс", "пн", "вт", "ср", "чт", "пт", "сб"],
		dayNamesMin: ["в", "п", "в", "с", "ч", "п", "с"],
		dayText: "День",
		delimiter: ".",
		hourText: "Часы",
		minuteText: "Минуты",
		monthNames: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
		monthNamesShort: ["Янв.", "Февр.", "Март", "Апр.", "Май", "Июнь", "Июль", "Авг.", "Сент.", "Окт.", "Нояб.", "Дек."],
		monthText: "Месяцы",
		secText: "Сикунды",
		timeFormat: "HH:ii",
		yearText: "Год",
		nowText: "Сейчас",
		amText: "am",
		pmText: "pm",
		todayText: "Cегодня",
		firstDay: 1,
		dateText: "Дата",
		timeText: "Время",
		calendarText: "Календарь",
		closeText: "Закрыть",
		fromText: "Начало",
		toText: "Конец",
		wholeText: "Весь",
		fractionText: "Часть",
		unitText: "Единица",
		labels: ["Годы", " Месяцы ", " Дни ", " Часы ", " Минуты ", " Секунды", ""],
		labelsShort: ["Год", "Мес.", "Дн.", "Ч.", "Мин.", "Сек.", ""],
		startText: "Старт",
		stopText: "Стоп",
		resetText: " Сброс ",
		lapText: " Этап ",
		hideText: " Скрыть ",
		backText: "назад",
		undoText: "ОтменитЬ",
		offText: "O",
		onText: "I",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n["ru-RU"] = he.i18n.ru = {
		setText: "Установить",
		cancelText: "Отмена",
		clearText: "Очистить",
		selectedText: "{count} Выбрать",
		dateFormat: "dd.mm.yy",
		dayNames: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
		dayNamesShort: ["вс", "пн", "вт", "ср", "чт", "пт", "сб"],
		dayNamesMin: ["в", "п", "в", "с", "ч", "п", "с"],
		dayText: "День",
		delimiter: ".",
		hourText: "Час",
		minuteText: "Минут",
		monthNames: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"],
		monthNamesShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"],
		monthText: "Месяц",
		secText: "Секунд",
		timeFormat: "HH:ii",
		yearText: "Год",
		nowText: "Сейчас",
		amText: "am",
		pmText: "pm",
		todayText: "Cегодня",
		firstDay: 1,
		dateText: "Дата",
		timeText: "Время",
		calendarText: "Календарь",
		closeText: "Закрыть",
		fromText: "Начало",
		toText: "Конец",
		wholeText: "Целое",
		fractionText: "Дробное",
		unitText: "Единица",
		labels: ["Лет", "Месяцев", "Дней", "Часов", "Минут", "Секунд", ""],
		labelsShort: ["Лет", "Мес", "Дн", "Час", "Мин", "Сек", ""],
		startText: "Старт",
		stopText: "Стоп",
		resetText: "Сбросить",
		lapText: "Круг",
		hideText: "Скрыть",
		backText: "назад",
		undoText: "ОтменитЬ",
		offText: "O",
		onText: "I",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.sk = {
		setText: "Zadaj",
		cancelText: "Zrušiť",
		clearText: "Vymazať",
		selectedText: "Označený: {count}",
		dateFormat: "d.m.yy",
		dayNames: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
		dayNamesShort: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"],
		dayNamesMin: ["N", "P", "U", "S", "Š", "P", "S"],
		dayText: "Ďeň",
		hourText: "Hodiny",
		minuteText: "Minúty",
		monthNames: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"],
		monthText: "Mesiac",
		secText: "Sekundy",
		timeFormat: "H:ii",
		yearText: "Rok",
		nowText: "Teraz",
		amText: "am",
		pmText: "pm",
		todayText: "Dnes",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Čas",
		calendarText: "Kalendár",
		closeText: "Zavrieť",
		fromText: "Začiatok",
		toText: "Koniec",
		wholeText: "Celý",
		fractionText: "Časť",
		unitText: "Jednotka",
		labels: ["Roky", "Mesiace", "Dni", "Hodiny", "Minúty", "Sekundy", ""],
		labelsShort: ["Rok", "Mes", "Dni", "Hod", "Min", "Sec", ""],
		startText: "Start",
		stopText: "Stop",
		resetText: "Resetovať",
		lapText: "Etapa",
		hideText: "Schovať",
		backText: "Späť",
		undoText: "Späť",
		offText: "O",
		onText: "I",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.sr = {
		setText: "Постави",
		cancelText: "Откажи",
		clearText: "Обриши",
		selectedText: "{count} изабрана",
		dateFormat: "dd.mm.yy",
		dayNames: ["Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
		dayNamesShort: ["Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб"],
		dayNamesMin: ["Не", "По", "Ут", "Ср", "Че", "Пе", "Су"],
		dayText: "Дан",
		delimiter: ".",
		hourText: "Час",
		minuteText: "Минут",
		monthNames: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
		monthNamesShort: ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"],
		monthText: "месец",
		secText: "Секунд",
		timeFormat: "H:ii",
		yearText: "година",
		nowText: "сада",
		pmText: "pm",
		amText: "am",
		firstDay: 1,
		dateText: "Датум",
		timeText: "време",
		calendarText: "Календар",
		todayText: "Данас",
		prevMonthText: "Претходни мјесец",
		nextMonthText: "Следећег месеца",
		prevYearText: "Претходна године",
		nextYearText: "Следеће године",
		closeText: "Затвори",
		eventText: "Догађај",
		eventsText: "Догађаји",
		fromText: "Од",
		toText: "До",
		wholeText: "цео",
		fractionText: "Фракција",
		unitText: "единица",
		labels: ["Године", "Месеци", "Дана", "Сати", "Минута", "Секунди", ""],
		labelsShort: ["Год", "Мес", "Дана", "Сати", "Мину", "Секу", ""],
		startText: "Започни",
		stopText: "Стоп",
		resetText: "Ресетуј",
		lapText: "Круг",
		hideText: "Сакрити",
		backText: "Повратак",
		undoText: "Опозови",
		offText: "нe",
		onText: "да",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.sv = {
		setText: "OK",
		cancelText: "Avbryt",
		clearText: "Klara",
		selectedText: "{count} vald",
		dateFormat: "yy-mm-dd",
		dayNames: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"],
		dayNamesShort: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"],
		dayNamesMin: ["S", "M", "T", "O", "T", "F", "L"],
		dayText: "Dag",
		hourText: "Timme",
		minuteText: "Minut",
		monthNames: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"],
		monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
		monthText: "Månad",
		secText: "Sekund",
		timeFormat: "HH:ii",
		yearText: "År",
		nowText: "Nu",
		pmText: "pm",
		amText: "am",
		todayText: "I dag",
		firstDay: 1,
		dateText: "Datum",
		timeText: "Tid",
		calendarText: "Kalender",
		closeText: "Stäng",
		fromText: "Start",
		toText: "Slut",
		wholeText: "Hela",
		fractionText: "Bråk",
		unitText: "Enhet",
		labels: ["År", "Månader", "Dagar", "Timmar", "Minuter", "Sekunder", ""],
		labelsShort: ["År", "Mån", "Dag", "Tim", "Min", "Sek", ""],
		startText: "Start",
		stopText: "Stopp",
		resetText: "Återställ",
		lapText: "Varv",
		hideText: "Dölj",
		backText: "Tillbaka",
		undoText: "Ångra",
		offText: "Av",
		onText: "På"
	}, he.i18n.tr = {
		setText: "Seç",
		cancelText: "İptal",
		clearText: "Temizleyin",
		selectedText: "{count} seçilmiş",
		dateFormat: "dd.mm.yy",
		dayNames: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
		dayNamesShort: ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"],
		dayNamesMin: ["P", "P", "S", "Ç", "P", "C", "C"],
		dayText: "Gün",
		delimiter: ".",
		hourText: "Saat",
		minuteText: "Dakika",
		monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
		monthNamesShort: ["Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara"],
		monthText: "Ay",
		secText: "Saniye",
		timeFormat: "HH:ii",
		yearText: "Yıl",
		nowText: "Şimdi",
		pmText: "pm",
		amText: "am",
		todayText: "Bugün",
		firstDay: 1,
		dateText: "Tarih",
		timeText: "Zaman",
		calendarText: "Takvim",
		closeText: "Kapatmak",
		fromText: "Başla",
		toText: "Son",
		wholeText: "Tam",
		fractionText: "Kesir",
		unitText: "Birim",
		labels: ["Yıl", "Ay", "Gün", "Saat", "Dakika", "Saniye", ""],
		labelsShort: ["Yıl", "Ay", "Gün", "Sa", "Dak", "Sn", ""],
		startText: "Başla",
		stopText: "Durdur",
		resetText: "Sıfırla",
		lapText: "Tur",
		hideText: "Gizle",
		backText: "Geri",
		undoText: "Geri Al",
		offText: "O",
		onText: "I",
		decimalSeparator: ",",
		thousandsSeparator: "."
	}, he.i18n.vi = {
		setText: "Đặt",
		cancelText: "Hủy bò",
		clearText: "Xóa",
		selectedText: "{count} chọn",
		dateFormat: "dd/mm/yy",
		dayNames: ["Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy"],
		dayNamesShort: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
		dayNamesMin: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"],
		dayText: "",
		delimiter: "/",
		hourText: "Giờ",
		minuteText: "Phút",
		monthNames: ["Tháng Một", "Tháng Hai", "Tháng Ba", "Tháng Tư", "Tháng Năm", "Tháng Sáu", "Tháng Bảy", "Tháng Tám", "Tháng Chín", "Tháng Mười", "Tháng Mười Một", "Tháng Mười Hai"],
		monthNamesShort: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"],
		monthText: "Tháng",
		secText: "Giây",
		timeFormat: "H:ii",
		yearText: "Năm",
		nowText: "Bây giờ",
		pmText: "pm",
		amText: "am",
		firstDay: 0,
		dateText: "Ngày",
		timeText: "Hồi",
		calendarText: "Lịch",
		todayText: "Hôm nay",
		prevMonthText: "Tháng trước",
		nextMonthText: "Tháng tới",
		prevYearText: "Măm trước",
		nextYearText: "Năm tới",
		closeText: "Đóng",
		eventText: "Sự kiện",
		eventsText: "Sự kiện",
		fromText: "Từ",
		toText: "Tới",
		wholeText: "Toàn thể",
		fractionText: "Phân số",
		unitText: "đơn vị",
		labels: ["Năm", "Tháng", "Ngày", "Giờ", "Phút", "Giây", ""],
		labelsShort: ["Năm", "Tháng", "Ngày", "Giờ", "Phút", "Giây", ""],
		startText: "Bắt đầu",
		stopText: "Dừng",
		resetText: "Đặt lại",
		lapText: "Vòng",
		hideText: "Giấu",
		backText: "Quay lại",
		undoText: "Hoàn tác",
		offText: "Tất",
		onText: "Bật",
		decimalSeparator: ",",
		thousandsSeparator: " "
	}, he.i18n.zh = {
		setText: "确定",
		cancelText: "取消",
		clearText: "明确",
		selectedText: "{count} 选",
		dateFormat: "yy/mm/dd",
		dayNames: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
		dayNamesShort: ["日", "一", "二", "三", "四", "五", "六"],
		dayNamesMin: ["日", "一", "二", "三", "四", "五", "六"],
		dayText: "日",
		hourText: "时",
		minuteText: "分",
		monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
		monthNamesShort: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
		monthText: "月",
		secText: "秒",
		timeFormat: "HH:ii",
		yearText: "年",
		nowText: "当前",
		pmText: "下午",
		amText: "上午",
		todayText: "今天",
		dateText: "日",
		timeText: "时间",
		calendarText: "日历",
		closeText: "关闭",
		fromText: "开始时间",
		toText: "结束时间",
		wholeText: "合计",
		fractionText: "分数",
		unitText: "单位",
		labels: ["年", "月", "日", "小时", "分钟", "秒", ""],
		labelsShort: ["年", "月", "日", "点", "分", "秒", ""],
		startText: "开始",
		stopText: "停止",
		resetText: "重置",
		lapText: "圈",
		hideText: "隐藏",
		backText: "返回",
		undoText: "复原",
		offText: "关闭",
		onText: "开启",
		decimalSeparator: ",",
		thousandsSeparator: " "
	};
	var Ya = he.themes;
	Ya.frame.bootstrap = {
		disabledClass: "disabled",
		selectedClass: "btn-primary",
		selectedTabClass: "active",
		tabLink: !0,
		todayClass: "text-primary",
		onMarkupInserted: function(e) {
			var t = Ee(e.target);
			Ee(".mbsc-fr-popup", t)
				.addClass("popover"), Ee(".mbsc-fr-w", t)
				.addClass("popover-content"), Ee(".mbsc-fr-hdr", t)
				.addClass("popover-title popover-header"), Ee(".mbsc-fr-arr-i", t)
				.addClass("popover"), Ee(".mbsc-fr-arr", t)
				.addClass("arrow"), Ee(".mbsc-fr-btn", t)
				.addClass("btn btn-default btn-secondary"), Ee(".mbsc-fr-btn-s .mbsc-fr-btn", t)
				.removeClass("btn-default btn-secondary")
				.addClass("btn btn-primary"), Ee(".mbsc-sc-btn-plus", t)
				.addClass("glyphicon glyphicon-chevron-down"), Ee(".mbsc-sc-btn-minus", t)
				.addClass("glyphicon glyphicon-chevron-up"), Ee(".mbsc-cal-next", t)
				.prepend('<i class="glyphicon glyphicon-chevron-right"></i>'), Ee(".mbsc-cal-prev", t)
				.prepend('<i class="glyphicon glyphicon-chevron-left"></i>'), Ee(".mbsc-cal-tabs", t)
				.addClass("nav nav-tabs"), Ee(".mbsc-cal-picker", t)
				.addClass("popover"), Ee(".mbsc-cal-events", t)
				.addClass("popover"), Ee(".mbsc-cal-events-arr", t)
				.addClass("arrow"), Ee(".mbsc-range-btn", t)
				.addClass("btn btn-sm btn-small btn-default"), Ee(".mbsc-np-btn", t)
				.addClass("btn btn-default"), Ee(".mbsc-sel-filter-cont", t)
				.removeClass("mbsc-input"), Ee(".mbsc-sel-filter-input", t)
				.addClass("form-control")
		},
		onPosition: function(e) {
			setTimeout(function() {
				Ee(".mbsc-fr-bubble-top, .mbsc-fr-bubble-top .mbsc-fr-arr-i", e.target)
					.removeClass("bottom")
					.addClass("top"), Ee(".mbsc-fr-bubble-bottom, .mbsc-fr-bubble-bottom .mbsc-fr-arr-i", e.target)
					.removeClass("top")
					.addClass("bottom")
			}, 10)
		}
	}, Ya.scroller.bootstrap = ze({}, Ya.frame.bootstrap, {
		dateDisplay: "Mddyy",
		btnCalPrevClass: "",
		btnCalNextClass: "",
		selectedLineHeight: !0,
		onEventBubbleShow: function(e) {
			var t = Ee(e.eventList);
			Ee(".mbsc-cal-event-list", t)
				.addClass("list-group"), Ee(".mbsc-cal-event", t)
				.addClass("list-group-item"), setTimeout(function() {
				t.hasClass("mbsc-cal-events-b") ? t.removeClass("top")
					.addClass("bottom") : t.removeClass("bottom")
					.addClass("top")
			}, 10)
		}
	}), Ya.navigation.bootstrap = {
		wrapperClass: "popover panel panel-default",
		groupClass: "btn-group",
		activeClass: "btn-primary",
		disabledClass: "disabled",
		itemClass: "btn btn-default"
	};
	var ja = he.themes;
	ja.frame.ios = {
		display: "bottom",
		headerText: !1,
		btnWidth: !1,
		deleteIcon: "ios-backspace",
		scroll3d: !0
	}, ja.scroller.ios = ze({}, ja.frame.ios, {
		rows: 5,
		height: 34,
		minWidth: 55,
		selectedLineHeight: !0,
		selectedLineBorder: 1,
		showLabel: !1,
		useShortLabels: !0,
		btnPlusClass: "mbsc-ic mbsc-ic-arrow-down5",
		btnMinusClass: "mbsc-ic mbsc-ic-arrow-up5",
		checkIcon: "ion-ios7-checkmark-empty",
		filterClearIcon: "ion-close-circled",
		dateDisplay: "MMdyy",
		btnCalPrevClass: "mbsc-ic mbsc-ic-arrow-left5",
		btnCalNextClass: "mbsc-ic mbsc-ic-arrow-right5"
	}), ja.listview.ios = {
		leftArrowClass: "mbsc-ic-ion-ios7-arrow-back",
		rightArrowClass: "mbsc-ic-ion-ios7-arrow-forward"
	}, ja.form.ios = {};
	var za, Wa, $a = he.themes;
	$a.frame.material = {
		headerText: !1,
		btnWidth: !1,
		deleteIcon: "material-backspace",
		onMarkupReady: function(e) {
			me(Ee(e.target), ".mbsc-fr-btn-e", "mbsc-fr-btn-d", "mbsc-fr-btn-nhl")
		}
	}, $a.scroller.material = ze({}, $a.frame.material, {
		showLabel: !1,
		selectedLineBorder: 2,
		weekDays: "min",
		icon: {
			filled: "material-star",
			empty: "material-star-outline"
		},
		checkIcon: "material-check",
		btnPlusClass: "mbsc-ic mbsc-ic-material-keyboard-arrow-down",
		btnMinusClass: "mbsc-ic mbsc-ic-material-keyboard-arrow-up",
		btnCalPrevClass: "mbsc-ic mbsc-ic-material-keyboard-arrow-left",
		btnCalNextClass: "mbsc-ic mbsc-ic-material-keyboard-arrow-right",
		onEventBubbleShow: function(e) {
			var t = Ee(e.eventList),
				a = Ee(e.target)
					.closest(".mbsc-cal-row")
					.index() < 2,
				n = Ee(".mbsc-cal-event-color", t)
					.eq(a ? 0 : -1)
					.css("background-color");
			Ee(".mbsc-cal-events-arr", t)
				.css("border-color", a ? "transparent transparent " + n + " transparent" : n + "transparent transparent transparent")
		}
	}), $a.listview.material = {
		leftArrowClass: "mbsc-ic-material-keyboard-arrow-left",
		rightArrowClass: "mbsc-ic-material-keyboard-arrow-right",
		onItemActivate: function(e) {
			de(Ee(e.target), e.domEvent)
		},
		onItemDeactivate: function() {
			ue(Wa)
		},
		onSlideStart: function(e) {
			Ee(".mbsc-ripple", e.target)
				.remove()
		},
		onSortStart: function(e) {
			Ee(".mbsc-ripple", e.target)
				.remove()
		}
	}, $a.navigation.material = {
		onInit: function() {
			me(Ee(this), ".mbsc-ms-item.mbsc-btn-e", "mbsc-btn-d", "mbsc-btn-nhl")
		},
		onMarkupInit: function() {
			Ee(".mbsc-ripple", this)
				.remove()
		},
		onDestroy: function() {
			Ee(this)
				.off(".mbsc-ripple")
		}
	}, $a.form.material = {
		addRipple: function(e, t) {
			de(e, t)
		},
		removeRipple: function() {
			ue(Wa)
		}
	};
	var Ra = he.themes;
	Ra.frame.windows = {
		headerText: !1,
		deleteIcon: "backspace4",
		setIcon: "checkmark",
		cancelIcon: "close",
		closeIcon: "close",
		clearIcon: "close",
		okIcon: "checkmark",
		nowIcon: "loop2",
		startIcon: "play3",
		stopIcon: "pause2",
		resetIcon: "stop2",
		lapIcon: "loop2",
		btnWidth: !1,
		btnReverse: !0
	}, Ra.scroller.windows = ze({}, Ra.frame.windows, {
		minWidth: 76,
		height: 76,
		dateDisplay: "mmMMddDDyy",
		showLabel: !1,
		icon: {
			filled: "star3",
			empty: "star"
		},
		btnCalPrevClass: "mbsc-ic mbsc-ic-arrow-left2",
		btnCalNextClass: "mbsc-ic mbsc-ic-arrow-right2",
		btnPlusClass: "mbsc-ic mbsc-ic-plus",
		btnMinusClass: "mbsc-ic mbsc-ic-minus"
	}), Ra.form.windows = {}, he.customTheme("ios-dark", "ios"), he.customTheme("material-dark", "material"), he.customTheme("mobiscroll-dark", "mobiscroll"), he.customTheme("windows-dark", "windows");
	var Ja = he.themes,
		Ba = void 0;
	return "android" == Ce ? Ba = "material" : "ios" == Ce ? Ba = "ios" : "wp" == Ce && (Ba = "windows"), Ee.each(Ja.frame, function(e, t) {
		if (Ba && t.baseTheme == Ba && "material-dark" != e && "windows-dark" != e && "ios-dark" != e) return he.autoTheme = e, !1;
		e == Ba && (he.autoTheme = e)
	}), he
});